[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"summary-3009bd919b0a58a8-redash-sql-first-open-source-bi-for-dev-dashboards-summary":3,"summaries-facets-categories":162,"summary-related-3009bd919b0a58a8-redash-sql-first-open-source-bi-for-dev-dashboards-summary":3747},{"id":4,"title":5,"ai":6,"body":13,"categories":123,"created_at":125,"date_modified":125,"description":117,"extension":126,"faq":125,"featured":127,"kicker_label":125,"meta":128,"navigation":144,"path":145,"published_at":146,"question":125,"scraped_at":147,"seo":148,"sitemap":149,"source_id":150,"source_name":151,"source_type":152,"source_url":153,"stem":154,"tags":155,"thumbnail_url":125,"tldr":159,"tweet":125,"unknown_tags":160,"__hash__":161},"summaries\u002Fsummaries\u002F3009bd919b0a58a8-redash-sql-first-open-source-bi-for-dev-dashboards-summary.md","Redash: SQL-First Open-Source BI for Dev Dashboards",{"provider":7,"model":8,"input_tokens":9,"output_tokens":10,"processing_time_ms":11,"cost_usd":12},"openrouter","x-ai\u002Fgrok-4.1-fast",5206,1447,11033,0.00125785,{"type":14,"value":15,"toc":116},"minimark",[16,21,25,28,32,40,43,99,102,106,113],[17,18,20],"h2",{"id":19},"replace-csv-exports-with-unified-sql-workflows","Replace CSV Exports with Unified SQL Workflows",[22,23,24],"p",{},"Redash eliminates repetitive tasks like exporting CSVs or scripting ad-hoc reports by combining a SQL editor with dashboarding in one self-hosted tool. Connect to Postgres, MySQL, BigQuery, Snowflake, APIs, or MongoDB, then write queries with autocomplete and schema browser to avoid guessing table names. For example, query events data grouped by day, add date-range parameters, and one-click convert to line charts. Drop charts into dashboards, schedule hourly refreshes, and share links—achieving pipeline monitoring or metrics tracking without spreadsheets. This reduces redundancy across databases, as queries remix easily and cache results for speed.",[22,26,27],{},"The workflow stays dev-friendly: write complex SQL without tool friction, unlike no-code alternatives that bog down on joins or aggregations. With 28,000+ GitHub stars and active maintenance, it scales for internal dev-facing analytics, including joining API data with DB queries.",[17,29,31],{"id":30},"outperforms-no-code-tools-for-sql-heavy-teams","Outperforms No-Code Tools for SQL-Heavy Teams",[22,33,34,35,39],{},"Redash prioritizes SQL speed over visual polish, making it ideal when teams know SQL but need quick sharing. Pros include simple Docker self-hosting (one ",[36,37,38],"code",{},"docker-compose"," command), broad data source support, reusable query snippets, API access for embedding in tools, and alerts\u002Fscheduling. It feels like an enhanced SQL editor that serves non-devs without lock-in or costs.",[22,41,42],{},"Trade-offs are clear: visualizations are functional but not highly customizable—skip for fancy UIs. Self-hosting shifts ops burden (updates, scaling, maintenance) to you. Search lacks depth, mobile support is weak, and non-SQL users struggle. Compared to alternatives:",[44,45,46,62],"table",{},[47,48,49],"thead",{},[50,51,52,56,59],"tr",{},[53,54,55],"th",{},"Tool",[53,57,58],{},"Strengths",[53,60,61],{},"Weaknesses vs Redash",[63,64,65,77,88],"tbody",{},[50,66,67,71,74],{},[68,69,70],"td",{},"Metabase",[68,72,73],{},"No-code friendly",[68,75,76],{},"Slows on complex queries",[50,78,79,82,85],{},[68,80,81],{},"Superset",[68,83,84],{},"Visual power, scale",[68,86,87],{},"Heavier setup, less query-focused",[50,89,90,93,96],{},[68,91,92],{},"Tableau\u002FPower BI",[68,94,95],{},"Polished, enterprise-ready",[68,97,98],{},"Expensive, overkill for internal use",[22,100,101],{},"Redash wins for dev teams with multiple DBs wanting free, fast internal dashboards.",[17,103,105],{"id":104},"docker-setup-and-practical-use-cases","Docker Setup and Practical Use Cases",[22,107,108,109,112],{},"Clone the GitHub repo and run ",[36,110,111],{},"docker-compose up"," for a local instance in minutes. Add data sources via UI, query with schema exploration, visualize, and dashboard instantly. Use for dev ops like tracking metrics\u002Fupdates, monitoring pipelines, or blending API\u002FDB data—removing daily pains without vendor costs.",[22,114,115],{},"Verdict: Adopt if SQL-fluent and self-hosting fits; otherwise, Metabase for no-code or Tableau for pro dashboards. Test via quick install to verify workflow gains.",{"title":117,"searchDepth":118,"depth":118,"links":119},"",2,[120,121,122],{"id":19,"depth":118,"text":20},{"id":30,"depth":118,"text":31},{"id":104,"depth":118,"text":105},[124],"Data Science & Visualization",null,"md",false,{"content_references":129,"triage":139},[130,135],{"type":131,"title":132,"url":133,"context":134},"tool","Redash","https:\u002F\u002Fredash.io\u002F","recommended",{"type":131,"title":136,"url":137,"context":138},"Redash Repo","https:\u002F\u002Fgithub.com\u002Fgetredash\u002Fredash","mentioned",{"relevance":140,"novelty":141,"quality":140,"actionability":140,"composite":142,"reasoning":143},4,3,3.8,"Category: Data Science & Visualization. The article discusses how Redash can streamline data visualization and querying for developers, addressing the pain point of repetitive tasks in data handling. It provides specific examples of features like SQL querying and dashboard creation that developers can implement immediately.",true,"\u002Fsummaries\u002F3009bd919b0a58a8-redash-sql-first-open-source-bi-for-dev-dashboards-summary","2026-04-15 12:01:37","2026-04-19 03:29:55",{"title":5,"description":117},{"loc":145},"3009bd919b0a58a8","Better Stack","article","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ouKwtFoT1ZY","summaries\u002F3009bd919b0a58a8-redash-sql-first-open-source-bi-for-dev-dashboards-summary",[156,157,158],"data-visualization","open-source","dev-productivity","SQL-proficient devs use Redash to query multiple sources (Postgres, BigQuery, etc.), visualize results, and build shareable dashboards in minutes via self-hosted Docker—no CSVs or pricey tools needed.",[158],"1firGZ59YBzXHp0Xo0ZklOfd6iHXQv_vzhgYBxaknxc",[163,166,169,172,175,178,180,182,184,186,188,190,193,195,197,199,201,203,205,207,209,211,214,216,218,220,223,225,227,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,487,489,491,493,495,497,499,501,503,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,563,565,567,569,571,573,575,577,579,581,583,585,587,589,591,593,595,597,599,601,603,605,607,609,611,613,615,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667,669,671,673,675,677,679,681,683,685,687,689,691,693,695,697,699,701,703,705,707,709,711,713,715,717,719,721,723,725,727,729,731,733,735,737,739,741,743,745,747,749,751,753,755,757,759,761,763,765,767,769,771,773,775,777,779,781,783,785,787,789,791,793,795,797,799,801,803,805,807,809,811,813,815,817,819,821,823,825,827,829,831,833,835,837,839,841,843,845,847,849,851,853,855,857,859,861,863,865,867,869,871,873,875,877,879,881,883,885,887,889,891,893,895,897,899,901,903,905,907,909,911,913,915,917,919,921,923,925,927,929,931,933,935,937,939,941,943,945,947,949,951,953,955,957,959,961,963,965,967,969,971,973,975,977,979,981,983,985,987,989,991,993,995,997,999,1001,1003,1005,1007,1009,1011,1013,1015,1017,1019,1021,1023,1025,1027,1029,1031,1033,1035,1037,1039,1041,1043,1045,1047,1049,1051,1053,1055,1057,1059,1061,1063,1065,1067,1069,1071,1073,1075,1077,1079,1081,1083,1085,1087,1089,1091,1093,1095,1097,1099,1101,1103,1105,1107,1109,1111,1113,1115,1117,1119,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1155,1157,1159,1161,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221,1223,1225,1227,1229,1231,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,1329,1331,1333,1335,1337,1339,1341,1343,1345,1347,1349,1351,1353,1355,1357,1359,1361,1363,1365,1367,1369,1371,1373,1375,1377,1379,1381,1383,1385,1387,1389,1391,1393,1395,1397,1399,1401,1403,1405,1407,1409,1411,1413,1415,1417,1419,1421,1423,1425,1427,1429,1431,1433,1435,1437,1439,1441,1443,1445,1447,1449,1451,1453,1455,1457,1459,1461,1463,1465,1467,1469,1471,1473,1475,1477,1479,1481,1483,1485,1487,1489,1491,1493,1495,1497,1499,1501,1503,1505,1507,1509,1511,1513,1515,1517,1519,1521,1523,1525,1527,1529,1531,1533,1535,1537,1539,1541,1543,1545,1547,1549,1551,1553,1555,1557,1559,1561,1563,1565,1567,1569,1571,1573,1575,1577,1579,1581,1583,1585,1587,1589,1591,1593,1595,1597,1599,1601,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621,1623,1625,1627,1629,1631,1633,1635,1637,1639,1641,1643,1645,1647,1649,1651,1653,1655,1657,1659,1661,1663,1665,1667,1669,1671,1673,1675,1677,1679,1681,1683,1685,1687,1689,1691,1693,1695,1697,1699,1701,1703,1705,1707,1709,1711,1713,1715,1717,1719,1721,1723,1725,1727,1729,1731,1733,1735,1737,1739,1741,1743,1745,1747,1749,1751,1753,1755,1757,1759,1761,1763,1765,1767,1769,1771,1773,1775,1777,1779,1781,1783,1785,1787,1789,1791,1793,1795,1797,1799,1801,1803,1805,1807,1809,1811,1813,1815,1817,1819,1821,1823,1825,1827,1829,1831,1833,1835,1837,1839,1841,1843,1845,1847,1849,1851,1853,1855,1857,1859,1861,1863,1865,1867,1869,1871,1873,1875,1877,1879,1881,1883,1885,1887,1889,1891,1893,1895,1897,1899,1901,1903,1905,1907,1909,1911,1913,1915,1917,1919,1921,1923,1925,1927,1929,1931,1933,1935,1937,1939,1941,1943,1945,1947,1949,1951,1953,1955,1957,1959,1961,1963,1965,1967,1969,1971,1973,1975,1977,1979,1981,1983,1985,1987,1989,1991,1993,1995,1997,1999,2001,2003,2005,2007,2009,2011,2013,2015,2017,2019,2021,2023,2025,2027,2029,2031,2033,2035,2037,2039,2041,2043,2045,2047,2049,2051,2053,2055,2057,2059,2061,2063,2065,2067,2069,2071,2073,2075,2077,2079,2081,2083,2085,2087,2089,2091,2093,2095,2097,2099,2101,2103,2105,2107,2109,2111,2113,2115,2117,2119,2121,2123,2125,2127,2129,2131,2133,2135,2137,2139,2141,2143,2145,2147,2149,2151,2153,2155,2157,2159,2161,2163,2165,2167,2169,2171,2173,2175,2177,2179,2181,2183,2185,2187,2189,2191,2193,2195,2197,2199,2201,2203,2205,2207,2209,2211,2213,2215,2217,2219,2221,2223,2225,2227,2229,2231,2233,2235,2237,2239,2241,2243,2245,2247,2249,2251,2253,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311,2313,2315,2317,2319,2321,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345,2347,2349,2351,2353,2355,2357,2359,2361,2363,2365,2367,2369,2371,2373,2375,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397,2399,2401,2403,2405,2407,2409,2411,2413,2415,2417,2419,2421,2423,2425,2427,2429,2431,2433,2435,2437,2439,2441,2443,2445,2447,2449,2451,2453,2455,2457,2459,2461,2463,2465,2467,2469,2471,2473,2475,2477,2479,2481,2483,2485,2487,2489,2491,2493,2495,2497,2499,2501,2503,2505,2507,2509,2511,2513,2515,2517,2519,2521,2523,2525,2527,2529,2531,2533,2535,2537,2539,2541,2543,2545,2547,2549,2551,2553,2555,2557,2559,2561,2563,2565,2567,2569,2571,2573,2575,2577,2579,2581,2583,2585,2587,2589,2591,2593,2595,2597,2599,2601,2603,2605,2607,2609,2611,2613,2615,2617,2619,2621,2623,2625,2627,2629,2631,2633,2635,2637,2639,2641,2643,2645,2647,2649,2651,2653,2655,2657,2659,2661,2663,2665,2667,2669,2671,2673,2675,2677,2679,2681,2683,2685,2687,2689,2691,2693,2695,2697,2699,2701,2703,2705,2707,2709,2711,2713,2715,2717,2719,2721,2723,2725,2727,2729,2731,2733,2735,2737,2739,2741,2743,2745,2747,2749,2751,2753,2755,2757,2759,2761,2763,2765,2767,2769,2771,2773,2775,2777,2779,2781,2783,2785,2787,2789,2791,2793,2795,2797,2799,2801,2803,2805,2807,2809,2811,2813,2815,2817,2819,2821,2823,2825,2827,2829,2831,2833,2835,2837,2839,2841,2843,2845,2847,2849,2851,2853,2855,2857,2859,2861,2863,2865,2867,2869,2871,2873,2875,2877,2879,2881,2883,2885,2887,2889,2891,2893,2895,2897,2899,2901,2903,2905,2907,2909,2911,2913,2915,2917,2919,2921,2923,2925,2927,2929,2931,2933,2935,2937,2939,2941,2943,2945,2947,2949,2951,2953,2955,2957,2959,2961,2963,2965,2967,2969,2971,2973,2975,2977,2979,2981,2983,2985,2987,2989,2991,2993,2995,2997,2999,3001,3003,3005,3007,3009,3011,3013,3015,3017,3019,3021,3023,3025,3027,3029,3031,3033,3035,3037,3039,3041,3043,3045,3047,3049,3051,3053,3055,3057,3059,3061,3063,3065,3067,3069,3071,3073,3075,3077,3079,3081,3083,3085,3087,3089,3091,3093,3095,3097,3099,3101,3103,3105,3107,3109,3111,3113,3115,3117,3119,3121,3123,3125,3127,3129,3131,3133,3135,3137,3139,3141,3143,3145,3147,3149,3151,3153,3155,3157,3159,3161,3163,3165,3167,3169,3171,3173,3175,3177,3179,3181,3183,3185,3187,3189,3191,3193,3195,3197,3199,3201,3203,3205,3207,3209,3211,3213,3215,3217,3219,3221,3223,3225,3227,3229,3231,3233,3235,3237,3239,3241,3243,3245,3247,3249,3251,3253,3255,3257,3259,3261,3263,3265,3267,3269,3271,3273,3275,3277,3279,3281,3283,3285,3287,3289,3291,3293,3295,3297,3299,3301,3303,3305,3307,3309,3311,3313,3315,3317,3319,3321,3323,3325,3327,3329,3331,3333,3335,3337,3339,3341,3343,3345,3347,3349,3351,3353,3355,3357,3359,3361,3363,3365,3367,3369,3371,3373,3375,3377,3379,3381,3383,3385,3387,3389,3391,3393,3395,3397,3399,3401,3403,3405,3407,3409,3411,3413,3415,3417,3419,3421,3423,3425,3427,3429,3431,3433,3435,3437,3439,3441,3443,3445,3447,3449,3451,3453,3455,3457,3459,3461,3463,3465,3467,3469,3471,3473,3475,3477,3479,3481,3483,3485,3487,3489,3491,3493,3495,3497,3499,3501,3503,3505,3507,3509,3511,3513,3515,3517,3519,3521,3523,3525,3527,3529,3531,3533,3535,3537,3539,3541,3543,3545,3547,3549,3551,3553,3555,3557,3559,3561,3563,3565,3567,3569,3571,3573,3575,3577,3579,3581,3583,3585,3587,3589,3591,3593,3595,3597,3599,3601,3603,3605,3607,3609,3611,3613,3615,3617,3619,3621,3623,3625,3627,3629,3631,3633,3635,3637,3639,3641,3643,3645,3647,3649,3651,3653,3655,3657,3659,3661,3663,3665,3667,3669,3671,3673,3675,3677,3679,3681,3683,3685,3687,3689,3691,3693,3695,3697,3699,3701,3703,3705,3707,3709,3711,3713,3715,3717,3719,3721,3723,3725,3727,3729,3731,3733,3735,3737,3739,3741,3743,3745],{"categories":164},[165],"Developer Productivity",{"categories":167},[168],"Business & SaaS",{"categories":170},[171],"AI & LLMs",{"categories":173},[174],"AI Automation",{"categories":176},[177],"Product Strategy",{"categories":179},[171],{"categories":181},[165],{"categories":183},[168],{"categories":185},[],{"categories":187},[171],{"categories":189},[],{"categories":191},[192],"AI News & Trends",{"categories":194},[174],{"categories":196},[192],{"categories":198},[174],{"categories":200},[174],{"categories":202},[171],{"categories":204},[171],{"categories":206},[192],{"categories":208},[171],{"categories":210},[],{"categories":212},[213],"Design & Frontend",{"categories":215},[124],{"categories":217},[192],{"categories":219},[],{"categories":221},[222],"Software Engineering",{"categories":224},[171],{"categories":226},[174],{"categories":228},[229],"Marketing & Growth",{"categories":231},[171],{"categories":233},[174],{"categories":235},[],{"categories":237},[],{"categories":239},[213],{"categories":241},[174],{"categories":243},[165],{"categories":245},[213],{"categories":247},[171],{"categories":249},[174],{"categories":251},[192],{"categories":253},[],{"categories":255},[],{"categories":257},[174],{"categories":259},[222],{"categories":261},[],{"categories":263},[168],{"categories":265},[],{"categories":267},[],{"categories":269},[174],{"categories":271},[174],{"categories":273},[171],{"categories":275},[],{"categories":277},[222],{"categories":279},[],{"categories":281},[],{"categories":283},[],{"categories":285},[171],{"categories":287},[229],{"categories":289},[213],{"categories":291},[213],{"categories":293},[171],{"categories":295},[174],{"categories":297},[171],{"categories":299},[171],{"categories":301},[174],{"categories":303},[174],{"categories":305},[124],{"categories":307},[192],{"categories":309},[174],{"categories":311},[229],{"categories":313},[174],{"categories":315},[177],{"categories":317},[],{"categories":319},[174],{"categories":321},[],{"categories":323},[174],{"categories":325},[222],{"categories":327},[213],{"categories":329},[171],{"categories":331},[],{"categories":333},[],{"categories":335},[174],{"categories":337},[],{"categories":339},[171],{"categories":341},[],{"categories":343},[165],{"categories":345},[222],{"categories":347},[168],{"categories":349},[192],{"categories":351},[171],{"categories":353},[],{"categories":355},[171],{"categories":357},[],{"categories":359},[222],{"categories":361},[124],{"categories":363},[],{"categories":365},[171],{"categories":367},[213],{"categories":369},[],{"categories":371},[213],{"categories":373},[174],{"categories":375},[],{"categories":377},[174],{"categories":379},[192],{"categories":381},[168],{"categories":383},[171],{"categories":385},[],{"categories":387},[174],{"categories":389},[171],{"categories":391},[177],{"categories":393},[],{"categories":395},[171],{"categories":397},[174],{"categories":399},[174],{"categories":401},[],{"categories":403},[124],{"categories":405},[171],{"categories":407},[],{"categories":409},[165],{"categories":411},[168],{"categories":413},[171],{"categories":415},[174],{"categories":417},[222],{"categories":419},[171],{"categories":421},[],{"categories":423},[],{"categories":425},[171],{"categories":427},[],{"categories":429},[213],{"categories":431},[],{"categories":433},[171],{"categories":435},[],{"categories":437},[174],{"categories":439},[171],{"categories":441},[213],{"categories":443},[],{"categories":445},[171],{"categories":447},[171],{"categories":449},[168],{"categories":451},[174],{"categories":453},[171],{"categories":455},[213],{"categories":457},[174],{"categories":459},[],{"categories":461},[],{"categories":463},[192],{"categories":465},[],{"categories":467},[171],{"categories":469},[168,229],{"categories":471},[],{"categories":473},[171],{"categories":475},[],{"categories":477},[],{"categories":479},[171],{"categories":481},[],{"categories":483},[171],{"categories":485},[486],"DevOps & Cloud",{"categories":488},[],{"categories":490},[192],{"categories":492},[213],{"categories":494},[],{"categories":496},[192],{"categories":498},[192],{"categories":500},[171],{"categories":502},[229],{"categories":504},[],{"categories":506},[168],{"categories":508},[],{"categories":510},[171,486],{"categories":512},[171],{"categories":514},[171],{"categories":516},[174],{"categories":518},[171,222],{"categories":520},[124],{"categories":522},[171],{"categories":524},[229],{"categories":526},[174],{"categories":528},[174],{"categories":530},[],{"categories":532},[174],{"categories":534},[171,168],{"categories":536},[],{"categories":538},[213],{"categories":540},[213],{"categories":542},[],{"categories":544},[],{"categories":546},[192],{"categories":548},[],{"categories":550},[165],{"categories":552},[222],{"categories":554},[171],{"categories":556},[213],{"categories":558},[174],{"categories":560},[222],{"categories":562},[192],{"categories":564},[213],{"categories":566},[],{"categories":568},[171],{"categories":570},[171],{"categories":572},[171],{"categories":574},[192],{"categories":576},[165],{"categories":578},[171],{"categories":580},[174],{"categories":582},[486],{"categories":584},[213],{"categories":586},[174],{"categories":588},[],{"categories":590},[],{"categories":592},[213],{"categories":594},[192],{"categories":596},[124],{"categories":598},[],{"categories":600},[171],{"categories":602},[171],{"categories":604},[168],{"categories":606},[171],{"categories":608},[171],{"categories":610},[192],{"categories":612},[],{"categories":614},[174],{"categories":616},[222],{"categories":618},[],{"categories":620},[171],{"categories":622},[171],{"categories":624},[174],{"categories":626},[],{"categories":628},[],{"categories":630},[171],{"categories":632},[],{"categories":634},[168],{"categories":636},[174],{"categories":638},[],{"categories":640},[165],{"categories":642},[171],{"categories":644},[168],{"categories":646},[192],{"categories":648},[],{"categories":650},[],{"categories":652},[],{"categories":654},[192],{"categories":656},[192],{"categories":658},[],{"categories":660},[],{"categories":662},[168],{"categories":664},[],{"categories":666},[],{"categories":668},[165],{"categories":670},[],{"categories":672},[229],{"categories":674},[174],{"categories":676},[168],{"categories":678},[174],{"categories":680},[222],{"categories":682},[],{"categories":684},[177],{"categories":686},[213],{"categories":688},[222],{"categories":690},[171],{"categories":692},[174],{"categories":694},[168],{"categories":696},[171],{"categories":698},[],{"categories":700},[],{"categories":702},[222],{"categories":704},[124],{"categories":706},[177],{"categories":708},[174],{"categories":710},[171],{"categories":712},[],{"categories":714},[486],{"categories":716},[],{"categories":718},[174],{"categories":720},[],{"categories":722},[],{"categories":724},[171],{"categories":726},[213],{"categories":728},[229],{"categories":730},[174],{"categories":732},[],{"categories":734},[165],{"categories":736},[],{"categories":738},[192],{"categories":740},[171,486],{"categories":742},[192],{"categories":744},[171],{"categories":746},[168],{"categories":748},[171],{"categories":750},[],{"categories":752},[168],{"categories":754},[],{"categories":756},[222],{"categories":758},[213],{"categories":760},[192],{"categories":762},[124],{"categories":764},[165],{"categories":766},[171],{"categories":768},[222],{"categories":770},[],{"categories":772},[],{"categories":774},[177],{"categories":776},[],{"categories":778},[171],{"categories":780},[],{"categories":782},[213],{"categories":784},[213],{"categories":786},[213],{"categories":788},[],{"categories":790},[],{"categories":792},[192],{"categories":794},[174],{"categories":796},[171],{"categories":798},[171],{"categories":800},[171],{"categories":802},[168],{"categories":804},[171],{"categories":806},[],{"categories":808},[222],{"categories":810},[222],{"categories":812},[168],{"categories":814},[],{"categories":816},[171],{"categories":818},[171],{"categories":820},[168],{"categories":822},[192],{"categories":824},[229],{"categories":826},[174],{"categories":828},[],{"categories":830},[213],{"categories":832},[],{"categories":834},[171],{"categories":836},[],{"categories":838},[168],{"categories":840},[174],{"categories":842},[],{"categories":844},[486],{"categories":846},[124],{"categories":848},[222],{"categories":850},[229],{"categories":852},[222],{"categories":854},[174],{"categories":856},[],{"categories":858},[],{"categories":860},[174],{"categories":862},[165],{"categories":864},[174],{"categories":866},[177],{"categories":868},[168],{"categories":870},[],{"categories":872},[171],{"categories":874},[177],{"categories":876},[171],{"categories":878},[171],{"categories":880},[229],{"categories":882},[213],{"categories":884},[174],{"categories":886},[],{"categories":888},[],{"categories":890},[486],{"categories":892},[222],{"categories":894},[],{"categories":896},[174],{"categories":898},[171],{"categories":900},[213,171],{"categories":902},[165],{"categories":904},[],{"categories":906},[171],{"categories":908},[165],{"categories":910},[213],{"categories":912},[174],{"categories":914},[222],{"categories":916},[],{"categories":918},[171],{"categories":920},[],{"categories":922},[165],{"categories":924},[],{"categories":926},[174],{"categories":928},[177],{"categories":930},[171],{"categories":932},[171],{"categories":934},[213],{"categories":936},[174],{"categories":938},[486],{"categories":940},[213],{"categories":942},[174],{"categories":944},[171],{"categories":946},[171],{"categories":948},[171],{"categories":950},[192],{"categories":952},[],{"categories":954},[177],{"categories":956},[174],{"categories":958},[213],{"categories":960},[174],{"categories":962},[222],{"categories":964},[213],{"categories":966},[174],{"categories":968},[192],{"categories":970},[],{"categories":972},[171],{"categories":974},[213],{"categories":976},[171],{"categories":978},[165],{"categories":980},[192],{"categories":982},[171],{"categories":984},[229],{"categories":986},[171],{"categories":988},[171],{"categories":990},[174],{"categories":992},[174],{"categories":994},[171],{"categories":996},[174],{"categories":998},[213],{"categories":1000},[171],{"categories":1002},[],{"categories":1004},[],{"categories":1006},[222],{"categories":1008},[],{"categories":1010},[165],{"categories":1012},[486],{"categories":1014},[],{"categories":1016},[165],{"categories":1018},[168],{"categories":1020},[229],{"categories":1022},[],{"categories":1024},[168],{"categories":1026},[],{"categories":1028},[],{"categories":1030},[],{"categories":1032},[],{"categories":1034},[],{"categories":1036},[171],{"categories":1038},[174],{"categories":1040},[486],{"categories":1042},[165],{"categories":1044},[171],{"categories":1046},[222],{"categories":1048},[177],{"categories":1050},[171],{"categories":1052},[229],{"categories":1054},[171],{"categories":1056},[171],{"categories":1058},[171],{"categories":1060},[171,165],{"categories":1062},[222],{"categories":1064},[222],{"categories":1066},[213],{"categories":1068},[171],{"categories":1070},[],{"categories":1072},[],{"categories":1074},[],{"categories":1076},[222],{"categories":1078},[124],{"categories":1080},[192],{"categories":1082},[213],{"categories":1084},[],{"categories":1086},[171],{"categories":1088},[171],{"categories":1090},[],{"categories":1092},[],{"categories":1094},[174],{"categories":1096},[171],{"categories":1098},[168],{"categories":1100},[],{"categories":1102},[165],{"categories":1104},[171],{"categories":1106},[165],{"categories":1108},[171],{"categories":1110},[222],{"categories":1112},[229],{"categories":1114},[171,213],{"categories":1116},[192],{"categories":1118},[213],{"categories":1120},[],{"categories":1122},[486],{"categories":1124},[213],{"categories":1126},[174],{"categories":1128},[],{"categories":1130},[],{"categories":1132},[],{"categories":1134},[],{"categories":1136},[222],{"categories":1138},[174],{"categories":1140},[174],{"categories":1142},[486],{"categories":1144},[171],{"categories":1146},[171],{"categories":1148},[171],{"categories":1150},[],{"categories":1152},[213],{"categories":1154},[],{"categories":1156},[],{"categories":1158},[174],{"categories":1160},[],{"categories":1162},[],{"categories":1164},[229],{"categories":1166},[229],{"categories":1168},[174],{"categories":1170},[],{"categories":1172},[171],{"categories":1174},[171],{"categories":1176},[222],{"categories":1178},[213],{"categories":1180},[213],{"categories":1182},[174],{"categories":1184},[165],{"categories":1186},[171],{"categories":1188},[213],{"categories":1190},[213],{"categories":1192},[174],{"categories":1194},[174],{"categories":1196},[171],{"categories":1198},[],{"categories":1200},[],{"categories":1202},[171],{"categories":1204},[174],{"categories":1206},[192],{"categories":1208},[222],{"categories":1210},[165],{"categories":1212},[171],{"categories":1214},[],{"categories":1216},[174],{"categories":1218},[174],{"categories":1220},[],{"categories":1222},[165],{"categories":1224},[171],{"categories":1226},[165],{"categories":1228},[165],{"categories":1230},[],{"categories":1232},[],{"categories":1234},[174],{"categories":1236},[174],{"categories":1238},[171],{"categories":1240},[171],{"categories":1242},[192],{"categories":1244},[124],{"categories":1246},[177],{"categories":1248},[192],{"categories":1250},[213],{"categories":1252},[],{"categories":1254},[192],{"categories":1256},[],{"categories":1258},[],{"categories":1260},[],{"categories":1262},[],{"categories":1264},[222],{"categories":1266},[124],{"categories":1268},[],{"categories":1270},[171],{"categories":1272},[171],{"categories":1274},[124],{"categories":1276},[222],{"categories":1278},[],{"categories":1280},[],{"categories":1282},[174],{"categories":1284},[192],{"categories":1286},[192],{"categories":1288},[174],{"categories":1290},[165],{"categories":1292},[171,486],{"categories":1294},[],{"categories":1296},[213],{"categories":1298},[165],{"categories":1300},[174],{"categories":1302},[213],{"categories":1304},[],{"categories":1306},[174],{"categories":1308},[174],{"categories":1310},[171],{"categories":1312},[229],{"categories":1314},[222],{"categories":1316},[213],{"categories":1318},[],{"categories":1320},[174],{"categories":1322},[171],{"categories":1324},[174],{"categories":1326},[174],{"categories":1328},[174],{"categories":1330},[229],{"categories":1332},[174],{"categories":1334},[171],{"categories":1336},[],{"categories":1338},[229],{"categories":1340},[192],{"categories":1342},[174],{"categories":1344},[],{"categories":1346},[],{"categories":1348},[171],{"categories":1350},[174],{"categories":1352},[192],{"categories":1354},[174],{"categories":1356},[],{"categories":1358},[],{"categories":1360},[],{"categories":1362},[174],{"categories":1364},[],{"categories":1366},[],{"categories":1368},[124],{"categories":1370},[171],{"categories":1372},[124],{"categories":1374},[192],{"categories":1376},[171],{"categories":1378},[171],{"categories":1380},[174],{"categories":1382},[171],{"categories":1384},[],{"categories":1386},[],{"categories":1388},[486],{"categories":1390},[],{"categories":1392},[],{"categories":1394},[165],{"categories":1396},[],{"categories":1398},[],{"categories":1400},[],{"categories":1402},[],{"categories":1404},[222],{"categories":1406},[192],{"categories":1408},[229],{"categories":1410},[168],{"categories":1412},[171],{"categories":1414},[171],{"categories":1416},[168],{"categories":1418},[],{"categories":1420},[213],{"categories":1422},[174],{"categories":1424},[168],{"categories":1426},[171],{"categories":1428},[171],{"categories":1430},[165],{"categories":1432},[],{"categories":1434},[165],{"categories":1436},[171],{"categories":1438},[229],{"categories":1440},[174],{"categories":1442},[192],{"categories":1444},[168],{"categories":1446},[171],{"categories":1448},[174],{"categories":1450},[],{"categories":1452},[171],{"categories":1454},[165],{"categories":1456},[171],{"categories":1458},[],{"categories":1460},[192],{"categories":1462},[171],{"categories":1464},[],{"categories":1466},[168],{"categories":1468},[171],{"categories":1470},[],{"categories":1472},[],{"categories":1474},[],{"categories":1476},[171],{"categories":1478},[],{"categories":1480},[486],{"categories":1482},[171],{"categories":1484},[],{"categories":1486},[171],{"categories":1488},[171],{"categories":1490},[171],{"categories":1492},[171,486],{"categories":1494},[171],{"categories":1496},[171],{"categories":1498},[213],{"categories":1500},[174],{"categories":1502},[],{"categories":1504},[174],{"categories":1506},[171],{"categories":1508},[171],{"categories":1510},[171],{"categories":1512},[165],{"categories":1514},[165],{"categories":1516},[222],{"categories":1518},[213],{"categories":1520},[174],{"categories":1522},[],{"categories":1524},[171],{"categories":1526},[192],{"categories":1528},[171],{"categories":1530},[168],{"categories":1532},[],{"categories":1534},[486],{"categories":1536},[213],{"categories":1538},[213],{"categories":1540},[174],{"categories":1542},[192],{"categories":1544},[174],{"categories":1546},[171],{"categories":1548},[],{"categories":1550},[171],{"categories":1552},[],{"categories":1554},[],{"categories":1556},[171],{"categories":1558},[171],{"categories":1560},[171],{"categories":1562},[174],{"categories":1564},[171],{"categories":1566},[],{"categories":1568},[124],{"categories":1570},[174],{"categories":1572},[],{"categories":1574},[],{"categories":1576},[171],{"categories":1578},[192],{"categories":1580},[],{"categories":1582},[213],{"categories":1584},[486],{"categories":1586},[192],{"categories":1588},[222],{"categories":1590},[222],{"categories":1592},[192],{"categories":1594},[192],{"categories":1596},[486],{"categories":1598},[],{"categories":1600},[192],{"categories":1602},[171],{"categories":1604},[165],{"categories":1606},[192],{"categories":1608},[],{"categories":1610},[124],{"categories":1612},[192],{"categories":1614},[222],{"categories":1616},[192],{"categories":1618},[486],{"categories":1620},[171],{"categories":1622},[171],{"categories":1624},[],{"categories":1626},[168],{"categories":1628},[],{"categories":1630},[],{"categories":1632},[171],{"categories":1634},[171],{"categories":1636},[171],{"categories":1638},[171],{"categories":1640},[],{"categories":1642},[124],{"categories":1644},[165],{"categories":1646},[],{"categories":1648},[171],{"categories":1650},[171],{"categories":1652},[486],{"categories":1654},[486],{"categories":1656},[],{"categories":1658},[174],{"categories":1660},[192],{"categories":1662},[192],{"categories":1664},[171],{"categories":1666},[174],{"categories":1668},[],{"categories":1670},[213],{"categories":1672},[171],{"categories":1674},[171],{"categories":1676},[],{"categories":1678},[],{"categories":1680},[486],{"categories":1682},[171],{"categories":1684},[222],{"categories":1686},[168],{"categories":1688},[171],{"categories":1690},[],{"categories":1692},[174],{"categories":1694},[165],{"categories":1696},[165],{"categories":1698},[],{"categories":1700},[171],{"categories":1702},[213],{"categories":1704},[174],{"categories":1706},[],{"categories":1708},[171],{"categories":1710},[171],{"categories":1712},[174],{"categories":1714},[],{"categories":1716},[174],{"categories":1718},[222],{"categories":1720},[],{"categories":1722},[171],{"categories":1724},[],{"categories":1726},[171],{"categories":1728},[],{"categories":1730},[171],{"categories":1732},[171],{"categories":1734},[],{"categories":1736},[171],{"categories":1738},[192],{"categories":1740},[171],{"categories":1742},[171],{"categories":1744},[165],{"categories":1746},[171],{"categories":1748},[192],{"categories":1750},[174],{"categories":1752},[],{"categories":1754},[171],{"categories":1756},[229],{"categories":1758},[],{"categories":1760},[],{"categories":1762},[],{"categories":1764},[165],{"categories":1766},[192],{"categories":1768},[174],{"categories":1770},[171],{"categories":1772},[213],{"categories":1774},[174],{"categories":1776},[],{"categories":1778},[174],{"categories":1780},[],{"categories":1782},[171],{"categories":1784},[174],{"categories":1786},[171],{"categories":1788},[],{"categories":1790},[171],{"categories":1792},[171],{"categories":1794},[192],{"categories":1796},[213],{"categories":1798},[174],{"categories":1800},[213],{"categories":1802},[168],{"categories":1804},[],{"categories":1806},[],{"categories":1808},[171],{"categories":1810},[165],{"categories":1812},[192],{"categories":1814},[],{"categories":1816},[],{"categories":1818},[222],{"categories":1820},[213],{"categories":1822},[],{"categories":1824},[171],{"categories":1826},[],{"categories":1828},[229],{"categories":1830},[171],{"categories":1832},[486],{"categories":1834},[222],{"categories":1836},[],{"categories":1838},[174],{"categories":1840},[171],{"categories":1842},[174],{"categories":1844},[174],{"categories":1846},[171],{"categories":1848},[],{"categories":1850},[165],{"categories":1852},[171],{"categories":1854},[168],{"categories":1856},[222],{"categories":1858},[213],{"categories":1860},[],{"categories":1862},[],{"categories":1864},[],{"categories":1866},[174],{"categories":1868},[213],{"categories":1870},[192],{"categories":1872},[171],{"categories":1874},[192],{"categories":1876},[213],{"categories":1878},[],{"categories":1880},[213],{"categories":1882},[192],{"categories":1884},[168],{"categories":1886},[171],{"categories":1888},[192],{"categories":1890},[229],{"categories":1892},[],{"categories":1894},[],{"categories":1896},[124],{"categories":1898},[171,222],{"categories":1900},[192],{"categories":1902},[171],{"categories":1904},[174],{"categories":1906},[174],{"categories":1908},[171],{"categories":1910},[],{"categories":1912},[222],{"categories":1914},[171],{"categories":1916},[124],{"categories":1918},[174],{"categories":1920},[229],{"categories":1922},[486],{"categories":1924},[],{"categories":1926},[165],{"categories":1928},[174],{"categories":1930},[174],{"categories":1932},[222],{"categories":1934},[171],{"categories":1936},[171],{"categories":1938},[],{"categories":1940},[],{"categories":1942},[],{"categories":1944},[486],{"categories":1946},[192],{"categories":1948},[171],{"categories":1950},[171],{"categories":1952},[171],{"categories":1954},[],{"categories":1956},[124],{"categories":1958},[168],{"categories":1960},[],{"categories":1962},[174],{"categories":1964},[486],{"categories":1966},[],{"categories":1968},[213],{"categories":1970},[213],{"categories":1972},[],{"categories":1974},[222],{"categories":1976},[213],{"categories":1978},[171],{"categories":1980},[],{"categories":1982},[192],{"categories":1984},[171],{"categories":1986},[213],{"categories":1988},[174],{"categories":1990},[192],{"categories":1992},[],{"categories":1994},[174],{"categories":1996},[213],{"categories":1998},[171],{"categories":2000},[],{"categories":2002},[171],{"categories":2004},[171],{"categories":2006},[486],{"categories":2008},[192],{"categories":2010},[124],{"categories":2012},[124],{"categories":2014},[],{"categories":2016},[],{"categories":2018},[],{"categories":2020},[174],{"categories":2022},[222],{"categories":2024},[222],{"categories":2026},[],{"categories":2028},[],{"categories":2030},[171],{"categories":2032},[],{"categories":2034},[174],{"categories":2036},[171],{"categories":2038},[],{"categories":2040},[171],{"categories":2042},[168],{"categories":2044},[171],{"categories":2046},[229],{"categories":2048},[174],{"categories":2050},[171],{"categories":2052},[222],{"categories":2054},[192],{"categories":2056},[174],{"categories":2058},[],{"categories":2060},[192],{"categories":2062},[174],{"categories":2064},[174],{"categories":2066},[],{"categories":2068},[168],{"categories":2070},[174],{"categories":2072},[],{"categories":2074},[171],{"categories":2076},[165],{"categories":2078},[192],{"categories":2080},[486],{"categories":2082},[174],{"categories":2084},[174],{"categories":2086},[165],{"categories":2088},[171],{"categories":2090},[],{"categories":2092},[],{"categories":2094},[213],{"categories":2096},[171,168],{"categories":2098},[],{"categories":2100},[165],{"categories":2102},[124],{"categories":2104},[171],{"categories":2106},[222],{"categories":2108},[171],{"categories":2110},[174],{"categories":2112},[171],{"categories":2114},[171],{"categories":2116},[192],{"categories":2118},[174],{"categories":2120},[],{"categories":2122},[],{"categories":2124},[174],{"categories":2126},[171],{"categories":2128},[486],{"categories":2130},[],{"categories":2132},[171],{"categories":2134},[174],{"categories":2136},[],{"categories":2138},[171],{"categories":2140},[229],{"categories":2142},[124],{"categories":2144},[174],{"categories":2146},[171],{"categories":2148},[486],{"categories":2150},[],{"categories":2152},[171],{"categories":2154},[229],{"categories":2156},[213],{"categories":2158},[171],{"categories":2160},[],{"categories":2162},[229],{"categories":2164},[192],{"categories":2166},[171],{"categories":2168},[171],{"categories":2170},[165],{"categories":2172},[],{"categories":2174},[],{"categories":2176},[213],{"categories":2178},[171],{"categories":2180},[124],{"categories":2182},[229],{"categories":2184},[229],{"categories":2186},[192],{"categories":2188},[],{"categories":2190},[],{"categories":2192},[171],{"categories":2194},[],{"categories":2196},[171,222],{"categories":2198},[192],{"categories":2200},[174],{"categories":2202},[222],{"categories":2204},[171],{"categories":2206},[165],{"categories":2208},[],{"categories":2210},[],{"categories":2212},[165],{"categories":2214},[229],{"categories":2216},[171],{"categories":2218},[],{"categories":2220},[213,171],{"categories":2222},[486],{"categories":2224},[165],{"categories":2226},[],{"categories":2228},[168],{"categories":2230},[168],{"categories":2232},[171],{"categories":2234},[222],{"categories":2236},[174],{"categories":2238},[192],{"categories":2240},[229],{"categories":2242},[213],{"categories":2244},[171],{"categories":2246},[171],{"categories":2248},[171],{"categories":2250},[165],{"categories":2252},[171],{"categories":2254},[174],{"categories":2256},[192],{"categories":2258},[],{"categories":2260},[],{"categories":2262},[124],{"categories":2264},[222],{"categories":2266},[171],{"categories":2268},[213],{"categories":2270},[124],{"categories":2272},[171],{"categories":2274},[171],{"categories":2276},[174],{"categories":2278},[174],{"categories":2280},[171,168],{"categories":2282},[],{"categories":2284},[213],{"categories":2286},[],{"categories":2288},[171],{"categories":2290},[192],{"categories":2292},[165],{"categories":2294},[165],{"categories":2296},[174],{"categories":2298},[171],{"categories":2300},[168],{"categories":2302},[222],{"categories":2304},[229],{"categories":2306},[],{"categories":2308},[192],{"categories":2310},[171],{"categories":2312},[171],{"categories":2314},[192],{"categories":2316},[222],{"categories":2318},[171],{"categories":2320},[174],{"categories":2322},[192],{"categories":2324},[171],{"categories":2326},[213],{"categories":2328},[171],{"categories":2330},[171],{"categories":2332},[486],{"categories":2334},[177],{"categories":2336},[174],{"categories":2338},[171],{"categories":2340},[192],{"categories":2342},[174],{"categories":2344},[229],{"categories":2346},[171],{"categories":2348},[],{"categories":2350},[171],{"categories":2352},[],{"categories":2354},[],{"categories":2356},[],{"categories":2358},[168],{"categories":2360},[171],{"categories":2362},[174],{"categories":2364},[192],{"categories":2366},[192],{"categories":2368},[192],{"categories":2370},[192],{"categories":2372},[],{"categories":2374},[165],{"categories":2376},[174],{"categories":2378},[192],{"categories":2380},[165],{"categories":2382},[174],{"categories":2384},[171],{"categories":2386},[171,174],{"categories":2388},[174],{"categories":2390},[486],{"categories":2392},[192],{"categories":2394},[192],{"categories":2396},[174],{"categories":2398},[171],{"categories":2400},[],{"categories":2402},[192],{"categories":2404},[229],{"categories":2406},[165],{"categories":2408},[171],{"categories":2410},[171],{"categories":2412},[],{"categories":2414},[222],{"categories":2416},[],{"categories":2418},[165],{"categories":2420},[174],{"categories":2422},[192],{"categories":2424},[171],{"categories":2426},[192],{"categories":2428},[165],{"categories":2430},[192],{"categories":2432},[192],{"categories":2434},[],{"categories":2436},[168],{"categories":2438},[174],{"categories":2440},[192],{"categories":2442},[192],{"categories":2444},[192],{"categories":2446},[192],{"categories":2448},[192],{"categories":2450},[192],{"categories":2452},[192],{"categories":2454},[192],{"categories":2456},[192],{"categories":2458},[192],{"categories":2460},[124],{"categories":2462},[165],{"categories":2464},[171],{"categories":2466},[171],{"categories":2468},[],{"categories":2470},[171,165],{"categories":2472},[],{"categories":2474},[174],{"categories":2476},[192],{"categories":2478},[174],{"categories":2480},[171],{"categories":2482},[171],{"categories":2484},[171],{"categories":2486},[171],{"categories":2488},[171],{"categories":2490},[174],{"categories":2492},[168],{"categories":2494},[213],{"categories":2496},[192],{"categories":2498},[171],{"categories":2500},[],{"categories":2502},[],{"categories":2504},[174],{"categories":2506},[213],{"categories":2508},[171],{"categories":2510},[],{"categories":2512},[],{"categories":2514},[229],{"categories":2516},[171],{"categories":2518},[],{"categories":2520},[],{"categories":2522},[165],{"categories":2524},[168],{"categories":2526},[171],{"categories":2528},[168],{"categories":2530},[213],{"categories":2532},[],{"categories":2534},[192],{"categories":2536},[],{"categories":2538},[213],{"categories":2540},[171],{"categories":2542},[229],{"categories":2544},[],{"categories":2546},[229],{"categories":2548},[],{"categories":2550},[],{"categories":2552},[174],{"categories":2554},[],{"categories":2556},[168],{"categories":2558},[165],{"categories":2560},[213],{"categories":2562},[222],{"categories":2564},[],{"categories":2566},[],{"categories":2568},[171],{"categories":2570},[165],{"categories":2572},[229],{"categories":2574},[],{"categories":2576},[174],{"categories":2578},[174],{"categories":2580},[192],{"categories":2582},[171],{"categories":2584},[174],{"categories":2586},[171],{"categories":2588},[174],{"categories":2590},[171],{"categories":2592},[177],{"categories":2594},[192],{"categories":2596},[],{"categories":2598},[229],{"categories":2600},[222],{"categories":2602},[174],{"categories":2604},[],{"categories":2606},[171],{"categories":2608},[174],{"categories":2610},[168],{"categories":2612},[165],{"categories":2614},[171],{"categories":2616},[213],{"categories":2618},[222],{"categories":2620},[222],{"categories":2622},[171],{"categories":2624},[124],{"categories":2626},[171],{"categories":2628},[174],{"categories":2630},[168],{"categories":2632},[174],{"categories":2634},[171],{"categories":2636},[171],{"categories":2638},[174],{"categories":2640},[192],{"categories":2642},[],{"categories":2644},[165],{"categories":2646},[171],{"categories":2648},[174],{"categories":2650},[171],{"categories":2652},[171],{"categories":2654},[],{"categories":2656},[213],{"categories":2658},[168],{"categories":2660},[192],{"categories":2662},[171],{"categories":2664},[171],{"categories":2666},[213],{"categories":2668},[229],{"categories":2670},[124],{"categories":2672},[171],{"categories":2674},[192],{"categories":2676},[171],{"categories":2678},[174],{"categories":2680},[486],{"categories":2682},[171],{"categories":2684},[174],{"categories":2686},[124],{"categories":2688},[],{"categories":2690},[174],{"categories":2692},[222],{"categories":2694},[213],{"categories":2696},[171],{"categories":2698},[165],{"categories":2700},[168],{"categories":2702},[222],{"categories":2704},[],{"categories":2706},[174],{"categories":2708},[171],{"categories":2710},[],{"categories":2712},[192],{"categories":2714},[],{"categories":2716},[192],{"categories":2718},[171],{"categories":2720},[174],{"categories":2722},[174],{"categories":2724},[174],{"categories":2726},[],{"categories":2728},[],{"categories":2730},[171],{"categories":2732},[171],{"categories":2734},[],{"categories":2736},[213],{"categories":2738},[174],{"categories":2740},[229],{"categories":2742},[165],{"categories":2744},[],{"categories":2746},[],{"categories":2748},[192],{"categories":2750},[222],{"categories":2752},[171],{"categories":2754},[171],{"categories":2756},[171],{"categories":2758},[222],{"categories":2760},[192],{"categories":2762},[213],{"categories":2764},[171],{"categories":2766},[171],{"categories":2768},[171],{"categories":2770},[192],{"categories":2772},[171],{"categories":2774},[192],{"categories":2776},[174],{"categories":2778},[174],{"categories":2780},[222],{"categories":2782},[174],{"categories":2784},[171],{"categories":2786},[222],{"categories":2788},[213],{"categories":2790},[],{"categories":2792},[174],{"categories":2794},[],{"categories":2796},[],{"categories":2798},[],{"categories":2800},[168],{"categories":2802},[171],{"categories":2804},[174],{"categories":2806},[165],{"categories":2808},[174],{"categories":2810},[229],{"categories":2812},[],{"categories":2814},[174],{"categories":2816},[],{"categories":2818},[165],{"categories":2820},[174],{"categories":2822},[],{"categories":2824},[174],{"categories":2826},[171],{"categories":2828},[192],{"categories":2830},[171],{"categories":2832},[174],{"categories":2834},[192],{"categories":2836},[174],{"categories":2838},[222],{"categories":2840},[213],{"categories":2842},[165],{"categories":2844},[],{"categories":2846},[174],{"categories":2848},[213],{"categories":2850},[486],{"categories":2852},[192],{"categories":2854},[171],{"categories":2856},[213],{"categories":2858},[165],{"categories":2860},[],{"categories":2862},[174],{"categories":2864},[174],{"categories":2866},[171],{"categories":2868},[],{"categories":2870},[174],{"categories":2872},[177],{"categories":2874},[192],{"categories":2876},[174],{"categories":2878},[168],{"categories":2880},[],{"categories":2882},[171],{"categories":2884},[177],{"categories":2886},[171],{"categories":2888},[174],{"categories":2890},[192],{"categories":2892},[165],{"categories":2894},[486],{"categories":2896},[171],{"categories":2898},[171],{"categories":2900},[171],{"categories":2902},[192],{"categories":2904},[168],{"categories":2906},[171],{"categories":2908},[213],{"categories":2910},[192],{"categories":2912},[486],{"categories":2914},[171],{"categories":2916},[],{"categories":2918},[],{"categories":2920},[486],{"categories":2922},[124],{"categories":2924},[174],{"categories":2926},[174],{"categories":2928},[192],{"categories":2930},[171],{"categories":2932},[165],{"categories":2934},[213],{"categories":2936},[174],{"categories":2938},[171],{"categories":2940},[229],{"categories":2942},[171],{"categories":2944},[174],{"categories":2946},[],{"categories":2948},[171],{"categories":2950},[171],{"categories":2952},[192],{"categories":2954},[165],{"categories":2956},[],{"categories":2958},[171],{"categories":2960},[171],{"categories":2962},[222],{"categories":2964},[213],{"categories":2966},[171,174],{"categories":2968},[229,168],{"categories":2970},[171],{"categories":2972},[],{"categories":2974},[174],{"categories":2976},[],{"categories":2978},[222],{"categories":2980},[171],{"categories":2982},[192],{"categories":2984},[],{"categories":2986},[174],{"categories":2988},[],{"categories":2990},[213],{"categories":2992},[174],{"categories":2994},[165],{"categories":2996},[174],{"categories":2998},[171],{"categories":3000},[486],{"categories":3002},[229],{"categories":3004},[168],{"categories":3006},[168],{"categories":3008},[165],{"categories":3010},[165],{"categories":3012},[171],{"categories":3014},[174],{"categories":3016},[171],{"categories":3018},[171],{"categories":3020},[165],{"categories":3022},[171],{"categories":3024},[229],{"categories":3026},[192],{"categories":3028},[171],{"categories":3030},[174],{"categories":3032},[171],{"categories":3034},[],{"categories":3036},[222],{"categories":3038},[],{"categories":3040},[174],{"categories":3042},[165],{"categories":3044},[],{"categories":3046},[486],{"categories":3048},[171],{"categories":3050},[],{"categories":3052},[192],{"categories":3054},[174],{"categories":3056},[222],{"categories":3058},[171],{"categories":3060},[174],{"categories":3062},[222],{"categories":3064},[174],{"categories":3066},[192],{"categories":3068},[165],{"categories":3070},[192],{"categories":3072},[222],{"categories":3074},[171],{"categories":3076},[213],{"categories":3078},[171],{"categories":3080},[171],{"categories":3082},[171],{"categories":3084},[171],{"categories":3086},[174],{"categories":3088},[171],{"categories":3090},[174],{"categories":3092},[171],{"categories":3094},[165],{"categories":3096},[171],{"categories":3098},[174],{"categories":3100},[213],{"categories":3102},[165],{"categories":3104},[174],{"categories":3106},[213],{"categories":3108},[],{"categories":3110},[171],{"categories":3112},[171],{"categories":3114},[222],{"categories":3116},[],{"categories":3118},[174],{"categories":3120},[229],{"categories":3122},[171],{"categories":3124},[192],{"categories":3126},[229],{"categories":3128},[174],{"categories":3130},[168],{"categories":3132},[168],{"categories":3134},[171],{"categories":3136},[165],{"categories":3138},[],{"categories":3140},[171],{"categories":3142},[],{"categories":3144},[165],{"categories":3146},[171],{"categories":3148},[174],{"categories":3150},[174],{"categories":3152},[],{"categories":3154},[222],{"categories":3156},[222],{"categories":3158},[229],{"categories":3160},[213],{"categories":3162},[],{"categories":3164},[171],{"categories":3166},[165],{"categories":3168},[171],{"categories":3170},[222],{"categories":3172},[165],{"categories":3174},[192],{"categories":3176},[192],{"categories":3178},[],{"categories":3180},[192],{"categories":3182},[174],{"categories":3184},[213],{"categories":3186},[124],{"categories":3188},[171],{"categories":3190},[],{"categories":3192},[192],{"categories":3194},[222],{"categories":3196},[168],{"categories":3198},[171],{"categories":3200},[165],{"categories":3202},[486],{"categories":3204},[165],{"categories":3206},[],{"categories":3208},[],{"categories":3210},[192],{"categories":3212},[],{"categories":3214},[174],{"categories":3216},[174],{"categories":3218},[174],{"categories":3220},[],{"categories":3222},[171],{"categories":3224},[],{"categories":3226},[192],{"categories":3228},[165],{"categories":3230},[213],{"categories":3232},[171],{"categories":3234},[192],{"categories":3236},[192],{"categories":3238},[],{"categories":3240},[192],{"categories":3242},[165],{"categories":3244},[171],{"categories":3246},[],{"categories":3248},[174],{"categories":3250},[174],{"categories":3252},[165],{"categories":3254},[],{"categories":3256},[],{"categories":3258},[],{"categories":3260},[213],{"categories":3262},[174],{"categories":3264},[171],{"categories":3266},[],{"categories":3268},[],{"categories":3270},[],{"categories":3272},[213],{"categories":3274},[],{"categories":3276},[165],{"categories":3278},[],{"categories":3280},[],{"categories":3282},[213],{"categories":3284},[171],{"categories":3286},[192],{"categories":3288},[],{"categories":3290},[229],{"categories":3292},[192],{"categories":3294},[229],{"categories":3296},[171],{"categories":3298},[],{"categories":3300},[],{"categories":3302},[174],{"categories":3304},[],{"categories":3306},[],{"categories":3308},[174],{"categories":3310},[171],{"categories":3312},[],{"categories":3314},[174],{"categories":3316},[192],{"categories":3318},[229],{"categories":3320},[124],{"categories":3322},[174],{"categories":3324},[174],{"categories":3326},[],{"categories":3328},[],{"categories":3330},[],{"categories":3332},[192],{"categories":3334},[],{"categories":3336},[],{"categories":3338},[213],{"categories":3340},[165],{"categories":3342},[],{"categories":3344},[168],{"categories":3346},[229],{"categories":3348},[171],{"categories":3350},[222],{"categories":3352},[165],{"categories":3354},[124],{"categories":3356},[168],{"categories":3358},[222],{"categories":3360},[],{"categories":3362},[],{"categories":3364},[174],{"categories":3366},[165],{"categories":3368},[213],{"categories":3370},[165],{"categories":3372},[174],{"categories":3374},[486],{"categories":3376},[174],{"categories":3378},[],{"categories":3380},[171],{"categories":3382},[192],{"categories":3384},[222],{"categories":3386},[],{"categories":3388},[213],{"categories":3390},[192],{"categories":3392},[165],{"categories":3394},[174],{"categories":3396},[171],{"categories":3398},[168],{"categories":3400},[174,486],{"categories":3402},[174],{"categories":3404},[222],{"categories":3406},[171],{"categories":3408},[124],{"categories":3410},[229],{"categories":3412},[174],{"categories":3414},[],{"categories":3416},[174],{"categories":3418},[171],{"categories":3420},[168],{"categories":3422},[],{"categories":3424},[],{"categories":3426},[171],{"categories":3428},[124],{"categories":3430},[171],{"categories":3432},[],{"categories":3434},[192],{"categories":3436},[],{"categories":3438},[192],{"categories":3440},[222],{"categories":3442},[174],{"categories":3444},[171],{"categories":3446},[229],{"categories":3448},[222],{"categories":3450},[],{"categories":3452},[192],{"categories":3454},[171],{"categories":3456},[],{"categories":3458},[171],{"categories":3460},[174],{"categories":3462},[171],{"categories":3464},[174],{"categories":3466},[171],{"categories":3468},[171],{"categories":3470},[171],{"categories":3472},[171],{"categories":3474},[168],{"categories":3476},[],{"categories":3478},[177],{"categories":3480},[192],{"categories":3482},[171],{"categories":3484},[],{"categories":3486},[222],{"categories":3488},[171],{"categories":3490},[171],{"categories":3492},[174],{"categories":3494},[192],{"categories":3496},[171],{"categories":3498},[171],{"categories":3500},[168],{"categories":3502},[174],{"categories":3504},[213],{"categories":3506},[],{"categories":3508},[124],{"categories":3510},[171],{"categories":3512},[],{"categories":3514},[192],{"categories":3516},[229],{"categories":3518},[],{"categories":3520},[],{"categories":3522},[192],{"categories":3524},[192],{"categories":3526},[229],{"categories":3528},[165],{"categories":3530},[174],{"categories":3532},[174],{"categories":3534},[171],{"categories":3536},[168],{"categories":3538},[],{"categories":3540},[],{"categories":3542},[192],{"categories":3544},[124],{"categories":3546},[222],{"categories":3548},[174],{"categories":3550},[213],{"categories":3552},[124],{"categories":3554},[124],{"categories":3556},[],{"categories":3558},[192],{"categories":3560},[171],{"categories":3562},[171],{"categories":3564},[222],{"categories":3566},[],{"categories":3568},[192],{"categories":3570},[192],{"categories":3572},[192],{"categories":3574},[],{"categories":3576},[174],{"categories":3578},[171],{"categories":3580},[],{"categories":3582},[165],{"categories":3584},[168],{"categories":3586},[],{"categories":3588},[171],{"categories":3590},[171],{"categories":3592},[],{"categories":3594},[222],{"categories":3596},[],{"categories":3598},[],{"categories":3600},[],{"categories":3602},[],{"categories":3604},[171],{"categories":3606},[192],{"categories":3608},[],{"categories":3610},[],{"categories":3612},[171],{"categories":3614},[171],{"categories":3616},[171],{"categories":3618},[124],{"categories":3620},[171],{"categories":3622},[124],{"categories":3624},[],{"categories":3626},[124],{"categories":3628},[124],{"categories":3630},[486],{"categories":3632},[174],{"categories":3634},[222],{"categories":3636},[],{"categories":3638},[],{"categories":3640},[124],{"categories":3642},[222],{"categories":3644},[222],{"categories":3646},[222],{"categories":3648},[],{"categories":3650},[165],{"categories":3652},[222],{"categories":3654},[222],{"categories":3656},[165],{"categories":3658},[222],{"categories":3660},[168],{"categories":3662},[222],{"categories":3664},[222],{"categories":3666},[222],{"categories":3668},[124],{"categories":3670},[192],{"categories":3672},[192],{"categories":3674},[171],{"categories":3676},[222],{"categories":3678},[124],{"categories":3680},[486],{"categories":3682},[124],{"categories":3684},[124],{"categories":3686},[124],{"categories":3688},[],{"categories":3690},[168],{"categories":3692},[],{"categories":3694},[486],{"categories":3696},[222],{"categories":3698},[222],{"categories":3700},[222],{"categories":3702},[174],{"categories":3704},[192,168],{"categories":3706},[124],{"categories":3708},[],{"categories":3710},[],{"categories":3712},[124],{"categories":3714},[],{"categories":3716},[124],{"categories":3718},[192],{"categories":3720},[174],{"categories":3722},[],{"categories":3724},[222],{"categories":3726},[171],{"categories":3728},[213],{"categories":3730},[],{"categories":3732},[171],{"categories":3734},[],{"categories":3736},[192],{"categories":3738},[165],{"categories":3740},[124],{"categories":3742},[],{"categories":3744},[222],{"categories":3746},[192],[3748,3829,3920,4033],{"id":3749,"title":3750,"ai":3751,"body":3756,"categories":3807,"created_at":125,"date_modified":125,"description":117,"extension":126,"faq":125,"featured":127,"kicker_label":125,"meta":3808,"navigation":144,"path":3817,"published_at":3818,"question":125,"scraped_at":3819,"seo":3820,"sitemap":3821,"source_id":3822,"source_name":151,"source_type":152,"source_url":3823,"stem":3824,"tags":3825,"thumbnail_url":125,"tldr":3826,"tweet":125,"unknown_tags":3827,"__hash__":3828},"summaries\u002Fsummaries\u002F2168fe9c778b5cde-siyuan-refactor-notes-like-code-without-broken-lin-summary.md","SiYuan: Refactor Notes Like Code Without Broken Links",{"provider":7,"model":8,"input_tokens":3752,"output_tokens":3753,"processing_time_ms":3754,"cost_usd":3755},5162,1290,14980,0.00117055,{"type":14,"value":3757,"toc":3801},[3758,3762,3765,3768,3772,3775,3778,3782,3785,3788,3792,3795,3798],[17,3759,3761],{"id":3760},"permanent-block-ids-enable-refactoring-without-breaks","Permanent Block IDs Enable Refactoring Without Breaks",[22,3763,3764],{},"Link to specific blocks (paragraphs, lists, code snippets) using unique, permanent IDs instead of file paths. Move or reorganize content freely—the embedded references stay intact, eliminating broken links common in Markdown folders or Obsidian vaults. For example, embed a Python code block in multiple notes; relocate the original, and all embeds update automatically. This shifts focus from file locations to utility, ideal for docs, bug tracking, or architecture diagrams where knowledge evolves.",[22,3766,3767],{},"Add interactive graph views to visualize block connections, revealing how bugs link to tasks or decisions tie to code snippets. Self-host via Docker Compose in 1-2 minutes for full local control and offline access.",[17,3769,3771],{"id":3770},"built-in-sql-databases-structure-dev-knowledge","Built-in SQL Databases Structure Dev Knowledge",[22,3773,3774],{},"Create task databases with fields like status and priority directly in notes. Query them inline with SQL—no plugins needed—for filtering high-priority bugs or overdue tasks. This turns scattered notes into a structured system design document or personal wiki, supporting project docs, code snippets, and knowledge bases.",[22,3776,3777],{},"Unlike plugin-dependent tools, databases are native, with export to Markdown available. Graph views integrate seamlessly, showing relational pins across your workspace.",[17,3779,3781],{"id":3780},"outperforms-obsidian-and-notion-for-local-power","Outperforms Obsidian and Notion for Local Power",[22,3783,3784],{},"Obsidian's file-based linking breaks on refactors; SiYuan's block-level granularity feels like a structured system. Notion offers similar blocks and databases but requires cloud subscription and lacks ownership—SiYuan delivers both locally and open-source, free of vendor lock-in.",[22,3786,3787],{},"Devs switch for stable large workspaces, fast updates, and performance on huge note sets (run occasional optimizations). Use SiYuan if notes grow into long-term systems; stick with Obsidian for Markdown\u002Fplugin-heavy setups or Notion if deeply invested despite switching pain.",[17,3789,3791],{"id":3790},"key-trade-offs-ownership-vs-familiarity","Key Trade-offs: Ownership vs Familiarity",[22,3793,3794],{},"Pros: Unbreakable links stabilize big notes; Docker self-hosting; native SQL outperforms plugin hunts; Notion-like UI with graph interactivity.",[22,3796,3797],{},"Cons: Stores in proprietary .psi format (not plain Markdown); smaller English plugin ecosystem (Chinese-origin); UI feels dated to some; large workspaces need optimization.",[22,3799,3800],{},"Try if current tools fail on structure—import existing notes and test block embeds on a project doc to validate fit.",{"title":117,"searchDepth":118,"depth":118,"links":3802},[3803,3804,3805,3806],{"id":3760,"depth":118,"text":3761},{"id":3770,"depth":118,"text":3771},{"id":3780,"depth":118,"text":3781},{"id":3790,"depth":118,"text":3791},[165],{"content_references":3809,"triage":3815},[3810,3813],{"type":131,"title":3811,"url":3812,"context":138},"SiYuan","https:\u002F\u002Fgithub.com\u002Fsiyuan-note\u002Fsiyuan",{"type":131,"title":3811,"url":3814,"context":138},"https:\u002F\u002Fb3log.org\u002Fsiyuan\u002F",{"relevance":140,"novelty":141,"quality":140,"actionability":140,"composite":142,"reasoning":3816},"Category: Developer Productivity. The article discusses a tool that enhances note-taking for developers by using permanent block IDs, addressing a common pain point of broken links in documentation. It provides actionable insights on how to implement the tool and its benefits over existing solutions, making it relevant for developers looking to improve their productivity.","\u002Fsummaries\u002F2168fe9c778b5cde-siyuan-refactor-notes-like-code-without-broken-lin-summary","2026-04-30 12:00:04","2026-05-03 16:47:32",{"title":3750,"description":117},{"loc":3817},"0a5e7223009396a5","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=2L3txd8_Psk","summaries\u002F2168fe9c778b5cde-siyuan-refactor-notes-like-code-without-broken-lin-summary",[157,158],"SiYuan uses permanent block IDs for unbreakable references and built-in SQL databases, letting developers organize technical notes like structured codebases locally, outperforming Obsidian's file links and Notion's cloud lock-in.",[158],"1jpoqcD8uth-GMhMxR2zvLbMa6kZDuJDgJdWnUx9sKg",{"id":3830,"title":3831,"ai":3832,"body":3837,"categories":3894,"created_at":125,"date_modified":125,"description":117,"extension":126,"faq":125,"featured":127,"kicker_label":125,"meta":3895,"navigation":144,"path":3908,"published_at":3909,"question":125,"scraped_at":147,"seo":3910,"sitemap":3911,"source_id":3912,"source_name":151,"source_type":152,"source_url":3913,"stem":3914,"tags":3915,"thumbnail_url":125,"tldr":3917,"tweet":125,"unknown_tags":3918,"__hash__":3919},"summaries\u002Fsummaries\u002Fbf9ecd4dfe672d2e-zrok-open-source-ngrok-fix-for-secure-localhost-sh-summary.md","Zrok: Open-Source ngrok Fix for Secure Localhost Sharing",{"provider":7,"model":8,"input_tokens":3833,"output_tokens":3834,"processing_time_ms":3835,"cost_usd":3836},5189,1449,10240,0.001255,{"type":14,"value":3838,"toc":3889},[3839,3843,3854,3861,3865,3876,3880,3883,3886],[17,3840,3842],{"id":3841},"share-localhost-apps-and-services-in-seconds-without-setup-pain","Share Localhost Apps and Services in Seconds Without Setup Pain",[22,3844,3845,3846,3849,3850,3853],{},"Run ",[36,3847,3848],{},"zrok enable"," once to set up your environment, then ",[36,3851,3852],{},"zrok share public \u003Cport>"," exposes any localhost app—like a Next.js default page on port 3000—to a stable public HTTPS URL instantly. No port forwarding, firewall changes, NAT traversal, or public IP needed; traffic routes end-to-end encrypted via OpenZiti's zero-trust mesh, keeping it off the public internet unless desired. This works for HTTP\u002FTCP apps, UDP (game servers, VoIP, IoT), files\u002Ffolders (browsable drive mode), and webhook testing—daily dev tasks that ngrok complicates with limits and random URLs.",[22,3855,3856,3857,3860],{},"For files, ",[36,3858,3859],{},"zrok share public backend\u002Fdrive \u003Cpath>"," turns directories into secure, shareable drives. Custom domains and a new UI improve usability over ngrok's free tier constraints, delivering smoother performance for quick demos.",[17,3862,3864],{"id":3863},"private-token-access-eliminates-unwanted-traffic","Private Token Access Eliminates Unwanted Traffic",[22,3866,3867,3868,3871,3872,3875],{},"Use ",[36,3869,3870],{},"zrok share private \u003Cport>"," to generate a share token instead of a public URL. Recipients run ",[36,3873,3874],{},"zrok access private \u003Ctoken>"," to connect securely—only granted users access your app, blocking bots, scanners, and random hits. This zero-trust model grants selective permission rather than broad exposure, ideal for sharing with one trusted person without making it public. Tokens enable controlled access for apps, files, or services, solving ngrok's add-on private sharing limitations.",[17,3877,3879],{"id":3878},"zrok-outshines-ngrok-on-ownership-and-protocols-with-clear-trade-offs","Zrok Outshines ngrok on Ownership and Protocols, With Clear Trade-offs",[22,3881,3882],{},"Zrok wins over ngrok (proprietary, HTTP\u002FTCP-focused, tight free tier) by being open-source, self-hostable for full control\u002Fprivacy, and natively integrating private sharing as core. It adds UDP support ngrok lacks, plus built-in file sharing—ngrok feels polished but owned; Zrok feels owned. Vs. Cloudflare (setup-heavy), Tailscale (VPN overkill), Zrok prioritizes quick, private tunnels without trade-offs in speed\u002Fprivacy\u002Fcontrol.",[22,3884,3885],{},"Downsides: steeper learning curve for self-hosting, no ngrok-style request replay\u002Finspection (hurts debugging), potential latency depending on setup. Still, for devs prioritizing privacy-first simplicity and avoiding ngrok's headaches, Zrok delivers—public for demos, private for secure collab—making it worth switching unless inspection is critical.",[22,3887,3888],{},"Final verdict: Adopt Zrok if quick, controlled sharing without exposure pains you; self-hosting unlocks unlimited use.",{"title":117,"searchDepth":118,"depth":118,"links":3890},[3891,3892,3893],{"id":3841,"depth":118,"text":3842},{"id":3863,"depth":118,"text":3864},{"id":3878,"depth":118,"text":3879},[486],{"content_references":3896,"triage":3906},[3897,3900,3903],{"type":131,"title":3898,"url":3899,"context":134},"Zrok","https:\u002F\u002Fzrok.io\u002F",{"type":131,"title":3901,"url":3902,"context":138},"Zrok Repo","https:\u002F\u002Fgithub.com\u002Fopenziti\u002Fzrok",{"type":3904,"title":3905,"context":138},"other","OpenZiti",{"relevance":140,"novelty":141,"quality":140,"actionability":140,"composite":142,"reasoning":3907},"Category: DevOps & Cloud. The article discusses Zrok, an open-source tool that enhances localhost sharing, addressing specific pain points like setup complexity and security, which are relevant to developers looking for efficient solutions. It provides actionable commands and comparisons to existing tools, making it practical for the audience.","\u002Fsummaries\u002Fbf9ecd4dfe672d2e-zrok-open-source-ngrok-fix-for-secure-localhost-sh-summary","2026-04-14 17:00:52",{"title":3831,"description":117},{"loc":3908},"bf9ecd4dfe672d2e","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=dLW0cT-iTjs","summaries\u002Fbf9ecd4dfe672d2e-zrok-open-source-ngrok-fix-for-secure-localhost-sh-summary",[157,158,3916],"devops-cloud","Zrok enables one-command sharing of localhost apps, files, TCP\u002FUDP services publicly or privately via tokens—zero-trust on OpenZiti beats ngrok's limits, random URLs, and public exposure without port forwarding.",[158,3916],"4FuTX_DqILI-shQp2t_hCURIeW1WLihPyeajYKFxIM4",{"id":3921,"title":3922,"ai":3923,"body":3928,"categories":4016,"created_at":125,"date_modified":125,"description":4017,"extension":126,"faq":125,"featured":127,"kicker_label":125,"meta":4018,"navigation":144,"path":4019,"published_at":4020,"question":125,"scraped_at":4021,"seo":4022,"sitemap":4023,"source_id":4024,"source_name":151,"source_type":4025,"source_url":4026,"stem":4027,"tags":4028,"thumbnail_url":125,"tldr":4030,"tweet":125,"unknown_tags":4031,"__hash__":4032},"summaries\u002Fsummaries\u002Ffab655590deb0e72-postgrest-zero-code-rest-api-from-postgres-summary.md","PostgREST: Zero-Code REST API from Postgres",{"provider":7,"model":8,"input_tokens":3924,"output_tokens":3925,"processing_time_ms":3926,"cost_usd":3927},4987,1301,11608,0.00162525,{"type":14,"value":3929,"toc":4010},[3930,3934,3937,3956,3963,3967,3982,3993,3997,4000,4003,4007],[17,3931,3933],{"id":3932},"schema-defines-your-api-eliminating-duplication","Schema Defines Your API, Eliminating Duplication",[22,3935,3936],{},"PostgREST queries your Postgres database schema directly to generate a full REST API, bypassing traditional layers like controllers, routes, ORMs, validation, and services. This eliminates duplicated logic: define data, access rules, and relationships once in the database, and the API mirrors it automatically. With 26k GitHub stars and powering Supabase at production scale, it handles serious traffic without custom backend code.",[22,3938,3939,3940,3943,3944,3947,3948,3951,3952,3955],{},"Setup takes under 60 seconds via Docker Compose: three services (Postgres, PostgREST, Swagger UI). Example docker-compose.yml wires them together; run ",[36,3941,3942],{},"docker compose up"," for instant API at ",[36,3945,3946],{},"\u002Frest\u002Fv1\u002F",". Create a simple table like ",[36,3949,3950],{},"todos (id, title, completed, created_at)",", and GET ",[36,3953,3954],{},"\u002Ftodos"," returns JSON immediately. POST new rows with JSON bodies syncs to DB instantly—no ORM lag.",[22,3957,3958,3959,3962],{},"Autogenerated Swagger UI at ",[36,3960,3961],{},"\u002Fdocs"," provides interactive docs, schemas, and testing for full CRUD exploration.",[17,3964,3966],{"id":3965},"url-driven-queries-and-rls-for-secure-operations","URL-Driven Queries and RLS for Secure Operations",[22,3968,3969,3970,3973,3974,3977,3978,3981],{},"Handle filtering (",[36,3971,3972],{},"\u002Ftodos?completed=eq.true","), sorting (",[36,3975,3976],{},"\u002Ftodos?order=created_at.desc","), and pagination (",[36,3979,3980],{},"\u002Ftodos?limit=10&offset=20",") via query params—no code required. Relationships use standard Postgres foreign keys, exposed naturally.",[22,3983,3984,3985,3988,3989,3992],{},"Security via Postgres Row Level Security (RLS): enable with ",[36,3986,3987],{},"ALTER TABLE todos ENABLE ROW LEVEL SECURITY;",", then define policies in SQL like ",[36,3990,3991],{},"CREATE POLICY anon ON todos FOR ALL USING (true) WITH CHECK (true);",". Rules live in the DB, reducing middleware scattering and maintenance. Anon access allows full CRUD here; refine for users\u002Froles to enforce fine-grained access without backend auth logic.",[17,3994,3996],{"id":3995},"performance-gains-vs-maintenance-trade-offs","Performance Gains vs. Maintenance Trade-offs",[22,3998,3999],{},"Benefits include rapid prototyping (idea to API in minutes), low maintenance (API evolves with schema changes), and high performance (direct DB queries scale like Supabase proves). Skip boilerplate tax: no Express\u002FPrisma controllers syncing schemas across layers.",[22,4001,4002],{},"Drawbacks: Heavy RLS increases DB load—design policies efficiently. Complex business logic pushes toward SQL views\u002Ffunctions, which some teams embrace for purity, others avoid. For intricate apps, add a thin BFF layer on top, but PostgREST handles 80%+ of CRUD.",[17,4004,4006],{"id":4005},"use-for-mvps-and-postgres-centric-apps","Use for MVPs and Postgres-Centric Apps",[22,4008,4009],{},"Adopt for prototypes, MVPs, or Postgres-heavy projects to ship faster with stronger security defaults. Avoid if needing heavy custom logic everywhere. Pair with existing DB for quick wins; your database becomes the single source of truth, making API a natural extension rather than a separate system.",{"title":117,"searchDepth":118,"depth":118,"links":4011},[4012,4013,4014,4015],{"id":3932,"depth":118,"text":3933},{"id":3965,"depth":118,"text":3966},{"id":3995,"depth":118,"text":3996},{"id":4005,"depth":118,"text":4006},[222],"PostgREST is one of the most underrated tools in modern backend development, and in this video shows how you can turn your Postgres database into a production-ready REST API with zero backend code. \n\nInstead of writing controllers, routes, and ORM logic, you’ll see how PostgREST lets your database handle everything—from CRUD operations and filtering to authentication using Row Level Security (RLS).\n\n🔗 Relevant Links\npostgREST Repo - https:\u002F\u002Fgithub.com\u002Fpostgrest\u002Fpostgrest\npostgREST Docs - https:\u002F\u002Fdocs.postgrest.org\u002Fen\u002Fv14\u002F\n\n❤️ More about us\nRadically better observability stack: https:\u002F\u002Fbetterstack.com\u002F\nWritten tutorials: https:\u002F\u002Fbetterstack.com\u002Fcommunity\u002F\nExample projects: https:\u002F\u002Fgithub.com\u002FBetterStackHQ\n\n📱 Socials\nTwitter: https:\u002F\u002Ftwitter.com\u002Fbetterstackhq\nInstagram: https:\u002F\u002Fwww.instagram.com\u002Fbetterstackhq\u002F\nTikTok: https:\u002F\u002Fwww.tiktok.com\u002F@betterstack\nLinkedIn: https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fbetterstack\n\n📌 Chapters:\n0:00 The Backend You Don’t Want to Write (Stop Writing CRUD APIs)\n0:35 What is PostgREST? (Postgres → REST API Explained)\n1:26 Live Demo: Postgres to REST API in 60 Seconds (Docker Setup)\n1:50 Docker Compose Setup (Postgres + PostgREST + Swagger UI)\n2:10 Row Level Security (RLS) Setup in Postgres\n2:39 Filtering, Sorting & Pagination via URL (No Code)\n2:50 Creating Data with POST Request (Instant DB Sync)\n3:12 Full API with Zero Backend Code (Recap)\n4:10 Pros: Speed, Simplicity, Performance (Direct Postgres)\n4:36 Cons: RLS Complexity, Views & Business Logic Tradeoffs\n5:12 Should You Use PostgREST? \n5:45 Final Thoughts: Build APIs Faster with Postgres",{},"\u002Fsummaries\u002Ffab655590deb0e72-postgrest-zero-code-rest-api-from-postgres-summary","2026-04-08 12:00:33","2026-04-08 14:48:25",{"title":3922,"description":4017},{"loc":4019},"fab655590deb0e72","video","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=DVYVvewa2kc","summaries\u002Ffab655590deb0e72-postgrest-zero-code-rest-api-from-postgres-summary",[157,4029,158],"software-engineering","PostgREST turns any Postgres schema into a production REST API with CRUD, filtering, pagination, and RLS security—no controllers, routes, or ORM needed, cutting 80% of backend boilerplate.",[4029,158],"oKhmXildbS60zMe0E7pmPr_4O43IT9m1RsJbEesKHRw",{"id":4034,"title":4035,"ai":4036,"body":4041,"categories":4084,"created_at":125,"date_modified":125,"description":4085,"extension":126,"faq":125,"featured":127,"kicker_label":125,"meta":4086,"navigation":144,"path":4087,"published_at":4088,"question":125,"scraped_at":4021,"seo":4089,"sitemap":4090,"source_id":4091,"source_name":151,"source_type":4025,"source_url":4092,"stem":4093,"tags":4094,"thumbnail_url":125,"tldr":4095,"tweet":125,"unknown_tags":4096,"__hash__":4097},"summaries\u002Fsummaries\u002Fcc410bc56bfe8773-directus-instant-backend-from-any-sql-db-summary.md","Directus: Instant Backend from Any SQL DB",{"provider":7,"model":8,"input_tokens":4037,"output_tokens":4038,"processing_time_ms":4039,"cost_usd":4040},5505,1415,9542,0.001786,{"type":14,"value":4042,"toc":4079},[4043,4047,4050,4053,4057,4060,4063,4067,4070,4073,4076],[17,4044,4046],{"id":4045},"skip-boilerplate-build-full-backend-in-minutes","Skip Boilerplate: Build Full Backend in Minutes",[22,4048,4049],{},"Directus sits directly on your existing SQL database—no migrations, no schema rebuilds, no duplicate layers. Point it at Postgres, MySQL, or Oracle to unlock REST\u002FGraphQL APIs, real-time subscriptions, and a reactive admin UI instantly. In a demo from blank slate: Create an \"orders\" collection via UI (no SQL), add fields like customer_name (string), email (string), product (dropdown with key-value pairs), amount (numeric), status (string). Data saves to your DB immediately. Add sample records: three orders with dummy customer\u002Fproduct data. Result: Functional CRUD without code.",[22,4051,4052],{},"Lock it down with granular permissions—no plugins needed. For public role on \"orders\": Enable read access, disable create\u002Fupdate\u002Fdelete at field level. This prevents unauthorized writes while exposing read-only data via APIs. Deploy via Docker for quick local testing; scales to production without rework.",[17,4054,4056],{"id":4055},"automate-with-flows-no-backend-logic-required","Automate with Flows: No Backend Logic Required",[22,4058,4059],{},"Flows handle automations visually, like n8n but database-native. Trigger on events (e.g., item created in \"orders\"). Add operations: Send email with dynamic data (subject: \"New Order\", body interpolates order details like customer\u002Femail). Test with Mailpit in Docker Compose—new order triggers flow, email delivers instantly. This eliminates wiring webhooks or cron jobs; flows pull\u002Fpush data directly from your DB.",[22,4061,4062],{},"Your DB remains the single source of truth, supporting legacy systems, SaaS backends, internal tools, headless CMS, or AI agents needing controlled access.",[17,4064,4066],{"id":4065},"trade-offs-vs-alternatives-choose-workflow-fit","Trade-offs vs. Alternatives: Choose Workflow Fit",[22,4068,4069],{},"Directus beats code-first tools like Strapi\u002FPayload (define schemas in code, then rebuild) by using your existing schema—zero recreation. Outpaces Hasura (GraphQL-focused) with full admin workspace, permissions, files, and flows included.",[22,4071,4072],{},"Pros: Permissions enforce precisely (field-level, role-based); flows cut busywork; clean\u002Ffast UI; Docker-easy; scales well; open-source (full control, no lock-in).",[22,4074,4075],{},"Cons: Advanced flows demand time (like n8n); docs spotty; self-hosting requires infra management; local complex setups get messy.",[22,4077,4078],{},"Skip if: Strict TypeScript monorepo, no existing DB, or code-defined everything (use Payload). Ideal for repetitive CRUD rebuilds—saves time\u002Fmaintenance on SQL-heavy projects.",{"title":117,"searchDepth":118,"depth":118,"links":4080},[4081,4082,4083],{"id":4045,"depth":118,"text":4046},{"id":4055,"depth":118,"text":4056},{"id":4065,"depth":118,"text":4066},[222],"If you’re tired of rebuilding the same backend over and over again, Directus will show you a faster way. \n\nSee how to turn a completely blank setup into a fully functional backend with APIs, permissions, and automations in just minutes—without writing traditional backend code. I’ll  build a system from scratch using Directus, covering collections, fields, roles and permissions, and flows for automation. It's great for devs working with databases like Postgres or MySQL who want to skip repetitive CRUD APIs and boilerplate backend logic.\n\n🔗 Relevant Links\nDirectus - https:\u002F\u002Fdirectus.io\u002F\nDirectus Repo - https:\u002F\u002Fgithub.com\u002Fdirectus\u002Fdirectus\n\n❤️ More about us\nRadically better observability stack: https:\u002F\u002Fbetterstack.com\u002F\nWritten tutorials: https:\u002F\u002Fbetterstack.com\u002Fcommunity\u002F\nExample projects: https:\u002F\u002Fgithub.com\u002FBetterStackHQ\n\n📱 Socials\nTwitter: https:\u002F\u002Ftwitter.com\u002Fbetterstackhq\nInstagram: https:\u002F\u002Fwww.instagram.com\u002Fbetterstackhq\u002F\nTikTok: https:\u002F\u002Fwww.tiktok.com\u002F@betterstack\nLinkedIn: https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fbetterstack\n\n📌 Chapters:\n0:00 Stop Rebuilding Backends (The Problem)\n0:33 What Directus Solves (Backend Boilerplate Explained)\n1:20 Build a Backend in Minutes (Live Directus Demo)\n3:15 Build out a Flow Automation\n4:38 What is Directus? (Database-First Backend Explained)\n5:23 Directus vs Strapi vs Payload vs Hasura\n5:45 Directus Pros and Cons \n7:00 Is Directus Worth It? (Who Should Use It)\n7:30 Final Thoughts",{},"\u002Fsummaries\u002Fcc410bc56bfe8773-directus-instant-backend-from-any-sql-db-summary","2026-04-07 12:01:28",{"title":4035,"description":4085},{"loc":4087},"cc410bc56bfe8773","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=o9-tFFcAhXo","summaries\u002Fcc410bc56bfe8773-directus-instant-backend-from-any-sql-db-summary",[157,158,4029],"Connect Directus to Postgres\u002FMySQL\u002FOracle for immediate REST\u002FGraphQL APIs, field-level permissions, admin UI, file handling, and no-code flows—skipping all CRUD boilerplate and schema migrations.",[158,4029],"7vO0VWb989Dq01ZqW6rjgNlKrIffduSJmg6YzwFwWlU"]