Reusable open source platform made to centralize whatever you want (activities in Quebec in this case).
About • Tiers • Features • Installation • Database •
After two years spent surveying Quebec, an idea popped into my head: why not referencing all theses adventures within a hand-sewn website? So I could also implement all the JS fatigue in one place 💪
This idea uses a lot of tiers library/framework/Saas products without which it can't work. All of them are free to use as long as you develop an open source project.
- Backend API: Vercel
- Database: Supabase
- Deployment: Vercel
- Code quality: SonarCloud
- Analytics: Google Analytics
- Newsletter: Sendinblue
- Styling: Chakra-UI
- Language: JS/Typescript/React
- Framework: NextJS
- Map: Leaflet
- Form validation: Formik
- Internationalization: I18next
- Date calculation: Dayjs
- Code formatting: Eslint
- Make sure that you have nodeJS installed on your machine.
- Fill the .env.example file accordingly the instructions then rename it to
.env
. - The backend is decoupled from the frontend and lives in
pages/api/
folder. Here is where Supabase SaaS is called but you could replace it by any external services.
- Analytics
- Different rendering strategies for speediness (CSR on the main list and SSG for singleton pages)
- Filtering
- Internationalization
- Map service
- Searching
Supabase SaaS uses Postgresql under the hood and the schema is built like this:
column name | data type |
---|---|
compagny | text |
picture_url | text |
address | text |
city | text |
postal_code | text |
phone | text |
price | bigint |
carbon_footprint | bigint |
id | uuid |
text | |
website | text |
created_at | timestamp with time zone |
name | jsonb |
social_media | json |
description | jsonb |
location | json |
review | jsonb |
seasons | ARRAY |
Openapi specifications allows us to generate a typescript file on fly corresponding to this schema. You can find it in the repo here.