From 791ad896b24f214acf225a249f42a6476ea1a442 Mon Sep 17 00:00:00 2001 From: Zsolt Ero Date: Wed, 12 Jun 2024 14:53:01 +0200 Subject: [PATCH] astro --- .gitignore | 1 + .prettierrc.js | 10 ++ package.json | 3 +- website/blocks/main.md | 88 ------------ website_astro/src/content/index/pricing.md | 7 + website_astro/src/content/index/rest.md | 63 +++++++++ website_astro/src/layouts/Static.astro | 44 ++++++ website_astro/src/pages/howto_use.astro | 3 +- website_astro/src/pages/index.astro | 129 +----------------- .../src/pages}/privacy.md | 5 + .../blocks => website_astro/src/pages}/tos.md | 5 + 11 files changed, 145 insertions(+), 213 deletions(-) create mode 100644 website_astro/src/content/index/pricing.md create mode 100644 website_astro/src/content/index/rest.md create mode 100644 website_astro/src/layouts/Static.astro rename {website/blocks => website_astro/src/pages}/privacy.md (99%) rename {website/blocks => website_astro/src/pages}/tos.md (99%) diff --git a/.gitignore b/.gitignore index 6a6804a..7a4d299 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ venv /pnpm-lock.yaml +/astro_blog diff --git a/.prettierrc.js b/.prettierrc.js index 3a93146..c16b819 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -3,6 +3,16 @@ const config = { semi: false, singleQuote: true, arrowParens: 'avoid', + + plugins: ['prettier-plugin-astro'], + overrides: [ + { + files: '*.astro', + options: { + parser: 'astro', + }, + }, + ], } module.exports = config diff --git a/package.json b/package.json index 278076b..e0df637 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "dependencies": { - "prettier": "^3.2.4" + "prettier": "^3.2.4", + "prettier-plugin-astro": "^0.14.0" } } diff --git a/website/blocks/main.md b/website/blocks/main.md index 13bb159..139597f 100644 --- a/website/blocks/main.md +++ b/website/blocks/main.md @@ -1,90 +1,2 @@ -## What is OpenFreeMap? -OpenFreeMap provides free map hosting so you can display custom maps on your website and apps. -It is truly **free**: there are no limits on the number of map views or requests you can make, nor on how you use your map. There is no registration page, user database, API keys, or cookies. - -It is truly **open-source**: everything, including the full production setup, is on [GitHub](https://github.com/hyperknot/openfreemap). Map data is from OpenStreetMap. - -## How can I use it? - -(Click below, it's interactive!) - - - -## How can I donate or support this project? - -If this project helps you save on your map hosting costs, please subscribe to one of our support plans here: - - - -On **Gold** level and above, we offer personalised technical support by email. Otherwise, support is via GitHub [Discussions](https://github.com/hyperknot/openfreemap/discussions). - -If we ever receive a **Diamond** level supporter, we'll put their logo on this page. - -When subscribing to a support plan, you receive an invoice for each of your payments. - -Note: if you want to make a single donation, feel free to cancel after the first payment. However, please understand that the nature of this project needs recurring donations to cover the server costs. - -## Is commercial usage allowed? - -Yes. - -## Who is behind this project? - -I'm Zsolt Ero ([X](https://x.com/hyperknot), [blog](https://blog.hyperknot.com/), [email](mailto:zsolt@openfreemap.org)). I built [MapHub](https://maphub.net/) and have been running map hosting in production for 8 years. - -## Why did you build this project? - -OpenStreetMap is one of the most important collective projects in history. It began 20 years ago, and today, 3 million edits are made each day! - -Unfortunately, when you want to use the map on your website or app, you need to look for a commercial map tile provider and hope your site doesn't become too popular. Otherwise, you might end up with a $10,000 bill in a single day, as Hoodmaps [did](https://x.com/levelsio/status/1730659933232730443). - -You can try self-hosting, but it requires a big server and a lot of time to get it right. - -I waited for years for someone to offer this service but realized that no one was going to do it. So, I thought I might use my map hosting experience and build it myself. - -I'll share more about the reasons in a future [blog post](https://blog.hyperknot.com/). Feel free to subscribe. - -## How can this work? How can a one-person project offer unlimited map hosting for free? - -There is no technical reason why map hosting costs as much as it does today. Vector tiles are just static files. OK, serving 300 million files is not easy, but at the end of the day, they are just files. - -Financially, the plan is to keep renting servers until they cover the bandwidth. I believe it can be self-sustainable if enough people subscribe to the support plans. - -If this project helps you save on your map hosting costs, please consider subscribing to a support plan. - -## How can I follow this project? - -X: [hyperknot](https://x.com/hyperknot) and [OpenFreeMapOrg](https://x.com/OpenFreeMapOrg) - -GitHub: [openfreemap](https://github.com/hyperknot/openfreemap) and [openfreemap-styles](https://github.com/hyperknot/openfreemap-styles) - -## What is the tech stack? - -There is no tile server running; only Btrfs partition images with 300 million hard-linked files. This was my idea; I haven't read about anyone else doing this in production, but it works really well. (You can read more about it on [GitHub](https://github.com/hyperknot/openfreemap). - -There is no cloud, just dedicated servers. The HTTPS server is nginx on Ubuntu. - -Special thanks go to [Michael Barry](https://github.com/msbarry) for developing [Planetiler](https://github.com/onthegomap/planetiler). It made it possible to generate the tiles in 5 hours instead of 5 weeks. The map schema is [OpenMapTiles](https://github.com/openmaptiles/openmaptiles). - -The [styles](https://github.com/hyperknot/openfreemap-styles) are forked and heavily modified. - -## Domains - -`tiles.openfreemap.org` - Cloudflare proxied -`direct.openfreemap.org` - direct connection, Round-Robin DNS - -## Attribution - -Attribution is required. If you are using MapLibre, they are automatically added, you have nothing to do. - -If you are using alternative clients, or if you are using this in printed media or video, you must add the following attribution: - -OpenFreeMap © OpenMapTiles Data from OpenStreetMap - -You do not need to display the OpenFreeMap part, but it is nice if you do. - -## License - -The license of this project is [MIT](https://www.tldrlegal.com/license/mit-license). Map data is from [OpenStreetMap](https://www.openstreetmap.org/copyright). The licenses for included projects are listed in [LICENSE.md](https://github.com/hyperknot/openfreemap/blob/main/LICENSE.md). diff --git a/website_astro/src/content/index/pricing.md b/website_astro/src/content/index/pricing.md new file mode 100644 index 0000000..f24d5b6 --- /dev/null +++ b/website_astro/src/content/index/pricing.md @@ -0,0 +1,7 @@ +On **Gold** level and above, we offer personalised technical support by email. Otherwise, support is via GitHub [Discussions](https://github.com/hyperknot/openfreemap/discussions). + +If we ever receive a **Diamond** level supporter, we'll put their logo on this page. + +When subscribing to a support plan, you receive an invoice for each of your payments. + +Note: if you want to make a single donation, feel free to cancel after the first payment. However, please understand that the nature of this project needs recurring donations to cover the server costs. \ No newline at end of file diff --git a/website_astro/src/content/index/rest.md b/website_astro/src/content/index/rest.md new file mode 100644 index 0000000..cda1f96 --- /dev/null +++ b/website_astro/src/content/index/rest.md @@ -0,0 +1,63 @@ + +## Is commercial usage allowed? + +Yes. + +## Who is behind this project? + +I'm Zsolt Ero ([X](https://x.com/hyperknot), [blog](https://blog.hyperknot.com/), [email](mailto:zsolt@openfreemap.org)). I built [MapHub](https://maphub.net/) and have been running map hosting in production for 8 years. + +## Why did you build this project? + +OpenStreetMap is one of the most important collective projects in history. It began 20 years ago, and today, 3 million edits are made each day! + +Unfortunately, when you want to use the map on your website or app, you need to look for a commercial map tile provider and hope your site doesn't become too popular. Otherwise, you might end up with a $10,000 bill in a single day, as Hoodmaps [did](https://x.com/levelsio/status/1730659933232730443). + +You can try self-hosting, but it requires a big server and a lot of time to get it right. + +I waited for years for someone to offer this service but realized that no one was going to do it. So, I thought I might use my map hosting experience and build it myself. + +I'll share more about the reasons in a future [blog post](https://blog.hyperknot.com/). Feel free to subscribe. + +## How can this work? How can a one-person project offer unlimited map hosting for free? + +There is no technical reason why map hosting costs as much as it does today. Vector tiles are just static files. OK, serving 300 million files is not easy, but at the end of the day, they are just files. + +Financially, the plan is to keep renting servers until they cover the bandwidth. I believe it can be self-sustainable if enough people subscribe to the support plans. + +If this project helps you save on your map hosting costs, please consider subscribing to a support plan. + +## How can I follow this project? + +X: [hyperknot](https://x.com/hyperknot) and [OpenFreeMapOrg](https://x.com/OpenFreeMapOrg) + +GitHub: [openfreemap](https://github.com/hyperknot/openfreemap) and [openfreemap-styles](https://github.com/hyperknot/openfreemap-styles) + +## What is the tech stack? + +There is no tile server running; only Btrfs partition images with 300 million hard-linked files. This was my idea; I haven't read about anyone else doing this in production, but it works really well. (You can read more about it on [GitHub](https://github.com/hyperknot/openfreemap). + +There is no cloud, just dedicated servers. The HTTPS server is nginx on Ubuntu. + +Special thanks go to [Michael Barry](https://github.com/msbarry) for developing [Planetiler](https://github.com/onthegomap/planetiler). It made it possible to generate the tiles in 5 hours instead of 5 weeks. The map schema is [OpenMapTiles](https://github.com/openmaptiles/openmaptiles). + +The [styles](https://github.com/hyperknot/openfreemap-styles) are forked and heavily modified. + +## Domains + +`tiles.openfreemap.org` - Cloudflare proxied +`direct.openfreemap.org` - direct connection, Round-Robin DNS + +## Attribution + +Attribution is required. If you are using MapLibre, they are automatically added, you have nothing to do. + +If you are using alternative clients, or if you are using this in printed media or video, you must add the following attribution: + +OpenFreeMap © OpenMapTiles Data from OpenStreetMap + +You do not need to display the OpenFreeMap part, but it is nice if you do. + +## License + +The license of this project is [MIT](https://www.tldrlegal.com/license/mit-license). Map data is from [OpenStreetMap](https://www.openstreetmap.org/copyright). The licenses for included projects are listed in [LICENSE.md](https://github.com/hyperknot/openfreemap/blob/main/LICENSE.md). diff --git a/website_astro/src/layouts/Static.astro b/website_astro/src/layouts/Static.astro new file mode 100644 index 0000000..4ae47aa --- /dev/null +++ b/website_astro/src/layouts/Static.astro @@ -0,0 +1,44 @@ +--- +interface Props { + title: string +} + +const { title } = Astro.props + +import '../styles/global.css' +--- + + + + + + + {title} + + + + + + + + + + + + + + + + + + + + + + diff --git a/website_astro/src/pages/howto_use.astro b/website_astro/src/pages/howto_use.astro index e15cdd2..0a8787d 100644 --- a/website_astro/src/pages/howto_use.astro +++ b/website_astro/src/pages/howto_use.astro @@ -1,4 +1,3 @@ -
@@ -107,4 +106,4 @@

- + \ No newline at end of file diff --git a/website_astro/src/pages/index.astro b/website_astro/src/pages/index.astro index ffb0f6a..60f8648 100644 --- a/website_astro/src/pages/index.astro +++ b/website_astro/src/pages/index.astro @@ -2,19 +2,9 @@ import Layout from '../layouts/Layout.astro' import Map from '../components/Map.astro' -import { getCollection } from 'astro:content' -import { getEntry } from 'astro:content' - import { Content as WhatIs } from '../content/index/whatis.md' - -// -// const content = await getCollection('index'); -// const snippets = {} -// -// for (const cont of content) { -// const {Content} = await cont.render() -// snippets[cont.slug] = Content -// } +import { Content as Pricing } from '../content/index/pricing.md' +import { Content as Rest } from '../content/index/rest.md' --- @@ -45,23 +35,11 @@ import { Content as WhatIs } from '../content/index/whatis.md'

-

- On Gold level and above, we offer personalised technical support by email. Otherwise, - support is via GitHub Discussions. -

-

- If we ever receive a Diamond level supporter, we'll put their logo on this page. -

-

When subscribing to a support plan, you receive an invoice for each of your payments.

-

- Note: if you want to make a single donation, feel free to cancel after the first payment. - However, please understand that the nature of this project needs recurring donations to cover - the server costs. -

+ +

Is commercial usage allowed?

Yes.

+

Who is behind this project?

I'm Zsolt Ero (X, MapHub and have been running map hosting in production for 8 years.

-

Why did you build this project?

-

- OpenStreetMap is one of the most important collective projects in history. It began 20 years - ago, and today, 3 million edits are made each day! -

-

- Unfortunately, when you want to use the map on your website or app, you need to look for a - commercial map tile provider and hope your site doesn't become too popular. Otherwise, you might - end up with a $10,000 bill in a single day, as Hoodmaps did. -

-

You can try self-hosting, but it requires a big server and a lot of time to get it right.

-

- I waited for years for someone to offer this service but realized that no one was going to do - it. So, I thought I might use my map hosting experience and build it myself. -

-

- I'll share more about the reasons in a future blog post. Feel free to subscribe. -

-

How can this work? How can a one-person project offer unlimited map hosting for free?

-

- There is no technical reason why map hosting costs as much as it does today. Vector tiles are - just static files. OK, serving 300 million files is not easy, but at the end of the day, they - are just files. -

-

- Financially, the plan is to keep renting servers until they cover the bandwidth. I believe it - can be self-sustainable if enough people subscribe to the support plans. -

-

- If this project helps you save on your map hosting costs, please consider subscribing to a - support plan. -

-

How can I follow this project?

-

- X: hyperknot and OpenFreeMapOrg -

-

- GitHub: openfreemap and openfreemap-styles -

-

What is the tech stack?

-

- There is no tile server running; only Btrfs partition images with 300 million hard-linked files. - This was my idea; I haven't read about anyone else doing this in production, but it works really - well. (You can read more about it on GitHub. -

-

There is no cloud, just dedicated servers. The HTTPS server is nginx on Ubuntu.

-

- Special thanks go to Michael Barry for developing Planetiler. It made it possible to generate the tiles in 5 hours instead of 5 weeks. The map schema is OpenMapTiles. -

-

- The styles are forked and heavily modified. -

-

Domains

-

- tiles.openfreemap.org - Cloudflare proxied
- direct.openfreemap.org - direct connection, Round-Robin DNS -

-

Attribution

-

- Attribution is required. If you are using MapLibre, they are automatically added, you have - nothing to do. -

-

- If you are using alternative clients, or if you are using this in printed media or video, you - must add the following attribution: -

-

- OpenFreeMap - © OpenMapTiles Data from OpenStreetMap -

-

You do not need to display the OpenFreeMap part, but it is nice if you do.

-

License

-

- The license of this project is MIT. - Map data is from OpenStreetMap. The - licenses for included projects are listed in LICENSE.md. -

+ + diff --git a/website/blocks/privacy.md b/website_astro/src/pages/privacy.md similarity index 99% rename from website/blocks/privacy.md rename to website_astro/src/pages/privacy.md index 4749d04..7537961 100644 --- a/website/blocks/privacy.md +++ b/website_astro/src/pages/privacy.md @@ -1,3 +1,8 @@ +--- +layout: '../layouts/Static.astro' +title: 'Privacy Policy' +--- + # OpenFreeMap and your data Version: 16th of Jan, 2024 diff --git a/website/blocks/tos.md b/website_astro/src/pages/tos.md similarity index 99% rename from website/blocks/tos.md rename to website_astro/src/pages/tos.md index 442c7c4..f20f096 100644 --- a/website/blocks/tos.md +++ b/website_astro/src/pages/tos.md @@ -1,3 +1,8 @@ +--- +layout: '../layouts/Static.astro' +title: 'Terms of Services' +--- + # TERMS OF SERVICES Version: 16th of Jan, 2024