Synaplan
기업을 위한 오픈소스 AI 플랫폼
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Commercial Real Estate Software Directory
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Source for cresoftware.tech, a directory of commercial real estate software. Static site hosted on GitHub Pages (deploys from main).
All product and category pages are generated from the data files. Do not edit files under products/ or categories/ by hand; edit the data and rebuild.
data/products.json # 208 product records (the source of truth)
data/categories.json # 14 categories: membership, descriptions, editorial, FAQ
scripts/build.js # static site generator (zero dependencies)
Rebuild after any data change:
node scripts/build.js
This regenerates:
products/<slug>/index.html — one page per productcategories/<slug>/index.html — one page per categoryalternatives/<slug>/index.html + alternatives/index.html — alternatives guides and hub (from data/editorial.json)compare/<a>-vs-<b>/index.html — comparison pages (from data/editorial.json)starter-stacks/<role>/index.html + starter-stacks/index.html — starter software stacks by role (from data/stacks.json)integrations/<hub>/index.html + integrations/index.html — integration hubssitemap.xml — real URLs with lastmodllms.txt — site map for AI assistants and answer enginesSITE-FOOTER, HOME-COMPARISONS, HOME-ALTERNATIVES, POPULAR-COMPARISONS, GUIDE-RELATED). Never edit between markers; the build overwrites them.data/lastmod.json stores a content hash per URL. A page's sitemap lastmod (and the visible "Updated" date on editorial pages) only moves when the content between the nav and the footer changes, so leave that file alone and commit it with the rest of the build output.
Commit the regenerated output along with the data change.
data/stacks.json holds one entry per role with three tiers (start, add, skip). Each item names a product slug, the job it covers, alternatives, and a cost with monthly_usd (normalized from the vendor's published price, or null when sold by quote), the basis of that figure, the checked date and the vendor source URL ("listing" when the vendor site blocks automated checks). from: true marks a starting price. The lean total is the start tier; the fuller total adds the add tier and drops any start item an add item replaces. Text fields can use {{lean}} / {{full}} (or {{lean:<role>}}) and the build fills in the current totals. After a rebuild, run node scripts/check-stacks.js to recompute every total from the data and compare it with the generated pages.
index.html (homepage), market-map.html, compare.html, submit.htmlguides/*.html — editorial buyer's guides (nav, related-reading block and footer are injected by the build)
ai-underwriting-software.html) must be registered in TOPIC_GUIDES in scripts/build.js with a footer label and the category whose editorial feeds their related-reading block.css/style.css, js/app.js (homepage/compare interactivity + shared helpers)The old hash-based routes (product.html#slug, category.html#slug) are redirect
shells that forward to /products/<slug>/ and /categories/<slug>/. Keep them.
data/products.json (copy an existing well-filled record as a template; slug must be URL-safe: letters, digits, hyphens).products array in data/categories.json (one primary category; at most two).node scripts/build.js and commit.data/photos.json (Unsplash, credits shown on each page and listed on the about page), files in img/photos/ (1600px and 800px WebP). A new category or topic guide needs an entry keyed by its slug.scripts/og-images.sh builds 1200x630 JPEGs in img/og/ from the photos and from each product's first screenshot. Re-run it after adding photos or screenshots.