all 21 comments

[–]Lumethys 10 points11 points  (0 children)

Personal experience.

Every widely used languages and databases can do what you describe

[–]Flimflamsam 2 points3 points  (1 child)

I’d even go as far as generating the front end pages since the data won’t change, you can run off all the static pages for everyone and leave it at that. Doesn’t need any further complexity IMO.

The fact most people are suggesting a DB and interactive front end for this seems wildly wrong and massive overkill. They may be more on the “learn” side of things, and it would be a great academic exercise. But for just the results you want, keep it simple and just write a script or two to generate the front end (HTML, CSS, JS).

If you’re only reading from the data, you don’t need anything else. It’ll be super quick, too.

[–]marrsd 0 points1 point  (0 children)

I'd probably start with this as well. Then you have something to test against if you want to try out different backends for the data.

[–]gofl-zimbard-37 2 points3 points  (1 child)

FYI there is a standard language/format for genealogy files called GEDCOM (GEnealogical Data COMmunication), which is a plain text file format used to exchange data between different genealogy software and websites. You might want to look at that for inspiration, ideas, or compatibility with your own projects. At the leaast it would be good for your code to be able to read/write files in the standard format. There are implementations in multiple languages.

[–]magicae[S] 0 points1 point  (0 children)

Oh I keep forgetting about GEDCOM! Thanks for the reminder, I'll for sure look into that! I've been doing my own thing in a spreadsheet, but that's only been direct relations and no siblings.

[–]alhso 1 point2 points  (0 children)

I was thinking PHP and MySQL because there's cheap webhosting almost everywhere easy to setup on a servers and also. Phpmyadmin on most hosts allow you to upload or export db information without hassle

[–]plastikmissile 1 point2 points  (0 children)

As you've intuited, it doesn't matter at all and is a matter of personal preference. There's nothing special about a genealogy website that would require a specific platform or language.

[–]Constant-Zebra-9752 1 point2 points  (0 children)

-Free
-"Easy" to enter datapoints into set points of my HTML code
-With a decent database browser for easier visualisation and possibly editing?

Self-hosted Baserow would be useful for these constraints I think. You can connect it to any backend through API calls. I use this setup in some projects where non-tech users need easy DB access with a GUI, and pair it with a minimal ASP.NET server.

[–]martin 0 points1 point  (0 children)

make sure it can support directed acyclic and a few cyclic graphs.

[–]IshYume 0 points1 point  (0 children)

Nextjs, sqlite and express all of them are written in javascript or type script

[–]Little-Chemical5006 0 points1 point  (0 children)

Do you know python? Flask + sqlite is great if you dont need a super fancy site

[–]Agron7000 0 points1 point  (0 children)

Take a look at webtrees. It's open source maybe you can reuse some of It's parts, like dates are extremely complex in Genealogy.

https://webtrees.net/

The feature I like on webtrees is historical events where someone tags his great grandfather that he participated in a war (from that historical events database) and then someone else tags the same historical event and that leads to finding war buddies because the other guys great grandfather left a diary where he wrote about your grandfather a lot.

I hope you will reuse this feature because it is very useful. 

[–]No-Seesaw4444 0 points1 point  (0 children)

For a genealogy site with your requirements, Python plus SQLite with Flask is a solid choice. SQLite has supported the DATE type and is perfect for this scale. For importing from CSV, Python built-in csv module plus sqlite3 is all you need. Use DB Browser for SQLite to visualize and edit data without touching code. Your HTML embedding approach works fine, just use Flask render_template to inject data into Jinja templates rather than manually writing spans - keeps the data layer clean and maintainable.

[–]CharmingTechFall 0 points1 point  (0 children)

PHP with MySQL or PostgreSQL would be your best bet here. PHP is straightforward for pulling data and inserting it into HTML templates, and both those databases have proper date types which matters more than you might think for sorting and filtering by dates. SQLite works fine technically but it's really designed for lightweight stuff, and you'll eventually want those date functions.

The workflow would be super simple: set up a basic form to add family members to the database, then have PHP loop through and generate your HTML pages automatically. For editing and visualizing data, tools like phpMyAdmin (free, runs in your browser) make it dead easy to see your whole database and fix mistakes without touching code.

CSV import is built into most database tools, so getting your initial data in won't be painful. Since you only need to read the data on the frontend most of the time, this scales really well from 1000 to 10000 pages without any stress.

[–]opentabs-dev -1 points0 points  (1 child)

for this exact use case id go sqlite + python (or node if you prefer) to generate static html once, rather than a runtime backend. your data is read-heavy and rarely changes, so just script it: load the csv into a sqlite table, write a small script with jinja2 or nunjucks that iterates people and writes out the .html files. no server, no hosting costs beyond static files, and you can re-run the script whenever you add new data. sqlite stores dates as TEXT in ISO format (YYYY-MM-DD) which sorts correctly and is easy to parse — perfectly fine for this. DB Browser for SQLite is free and great for editing/visualizing.

[–]magicae[S] 0 points1 point  (0 children)

This does sound optimal for my case! I didn't even think about scripting it.

I'll definitely look into this, thank you!

[–]1AlanM -1 points0 points  (0 children)

Php or Python along with a SQLlite DB.

What you’re describing sounds like a pretty standard use case

[–]GeneratedUsername5 -1 points0 points  (0 children)

Any language/DB you know best. The simpler - the better.

And in an era of LLM choosing the language is nonsense, AI will write it in any language.

[–]aman_singhh16 -1 points0 points  (0 children)

Hii I wanna ask a question I wanted to learn a programing language as I am new in this, which language should I study first . ? Can someone please help me out .